[
  {
    "path": ".gitignore",
    "content": "# Logs\r\nlogs\r\n*.log\r\nnpm-debug.log*\r\n.DS_Store\r\n# Runtime data\r\npids\r\n*.pid\r\n*.seed\r\n\r\n# Directory for instrumented libs generated by jscoverage/JSCover\r\nlib-cov\r\n\r\n# Coverage directory used by tools like istanbul\r\ncoverage\r\n\r\n# nyc test coverage\r\n.nyc_output\r\n\r\n# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)\r\n.grunt\r\n\r\n# node-waf configuration\r\n.lock-wscript\r\n\r\n# Compiled binary addons (http://nodejs.org/api/addons.html)\r\nbuild/Release\r\n\r\n# Dependency directories\r\nnode_modules\r\njspm_packages\r\n\r\n# Optional npm cache directory\r\n.npm\r\n\r\n# Optional REPL history\r\n.node_repl_history\r\n"
  },
  {
    "path": "CONTRIBUTE.md",
    "content": "# Contributing to MobileUI Components\n\n\nFirst off, thanks for taking the time to contribute! :+1: We do our best to accept all PRs that can improve this project! :tada:\n\nThe following is a set of guidelines for contributing to MobileUI Components and its packages, which are hosted in the [MobileUI](https://github.com/MobileUI) organization here at Github. These are mostly guidelines to help you guys get started and not rules. Use your best judgement, and feel free to propose changes to our project through a pull request. :smile:\n\n## What should I know before contributing?\n\nMobileUI is an open source project created thinking of making your hybrid applications faster and smaller. It helps a lot since you're not required to install the whole package, you only install what you need to get started in building your application. :tada:\n\nCertainly, you will love using it in [Progressive Web Apps](https://developers.google.com/web/progressive-web-apps/) and [Apache Cordova Apps](https://cordova.apache.org). You can use only the components you want in your projects created with [PhoneGap](https://phonegap.com/), [Ionic Framework](https://ionicframework.com/), [Onsen UI](https://onsen.io/), [Framework7](http://framework7.io/) and others focused on creating web apps. \n\nA rich variety of UI components specially designed for mobile apps. MobileUI provides tabs, side menu, stack navigation and tons of other components such as lists and forms. Some of the existing components are displayed differently on Android and iOS, with automatic styling that will change the appearance of the app based on the platform.\n\nTo know more --- check out the official [documentation](https://mobileui.github.io/#getting-started)\n\n## Getting Started\n\n---\n\n### Process of creating a new component\n\n1) In the project's root dir, create a folder named after the component you will create, for example `list` or `chart-bar`.\n\n2) Create a file named `component.json` inside the folder. The content of the `component.json` file should follow this structure:\n\n```JSON\n{\n  \"name\":\"chart-bar\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": [\n    \"base\"\n  ]\n}\n```\n\n3) Test and document your component in an HTML file inside your component's folder.\n\n> Include usage examples and all the options that your component accept so other people can use the component correctly!\n\n4) Open a Pull Request against the `master` branch\n\n5) Wait for review and discussion.\n\n> If we don't respond within a few days, send a message in the PR thread! =)\n\n6) Your code will be merged if accepted!\n\n### Re-generating MobileUI documentation\n\n1) Fork and clone (your fork) [components repo]() and [mobileui.github.io repo]() inside the same parent folder.\n\n```\n__ parent/\n  |_ components/\n  |_ mobileui.github.io/\n```\n\n2) With your terminal, inside the **components** project, execute the `generate_docs.js` with node:\n\n```bash\nnode generate_docs.js\n```\n\n3) Then, new files should be generated at **mobileui.github.io** folder. Now it's simple: add and commit these files to your fork project.\n\n4) At GitHub, open the PR from your fork of **mobileui.github.io** to our repository with this commit with the new generated files.\n\n5) We'll check and, if everything is ok, accept your merge!\n\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\r\n\r\nCopyright (c) 2017 MobileUI\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy\r\nof this software and associated documentation files (the \"Software\"), to deal\r\nin the Software without restriction, including without limitation the rights\r\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\ncopies of the Software, and to permit persons to whom the Software is\r\nfurnished to do so, subject to the following conditions:\r\n\r\nThe above copyright notice and this permission notice shall be included in all\r\ncopies or substantial portions of the Software.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\nSOFTWARE.\r\n"
  },
  {
    "path": "README.md",
    "content": "![MobileUI](logo_m.png)\r\n======\r\n\r\n[MobileUI](https://mobileui.github.io) is a simple and easy NPM package to install UI Components for web mobile apps using HTML, CSS and JavaScript.\r\n\r\nMobileUI provides a rich variety of UI components specially designed for mobile apps like tabs, side menu, stack navigation and tons of other components such as lists and forms. They all have iOS and Android support, with automatic styling that will change the appearance of the app based on the platform. With MobileUI you can truly support both Android and iOS with the same source code.\r\n\r\n> See the docs in: https://mobileui.github.io/\r\n\r\nQuickstart\r\n----------\r\n\r\nThe Installation is very simple, but first you need to install Node.js\r\n\r\nWith Node.js installed, run in your terminal:\r\n\r\n`npm install mobileui -g`\r\n \r\n To check the version of mobileui installed, Open the terminal and type  `mobileui`\r\n \r\n\r\nLinks\r\n---------------\r\n\r\n- [Install and features](https://mobileui.github.io/#getting-started)\r\n- [Documentation](https://mobileui.github.io)\r\n- [Contributing](https://github.com/MobileUI/components/blob/master/CONTRIBUTE.md)\r\n"
  },
  {
    "path": "alert/component.json",
    "content": "{\n  \"name\":\"alert\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": [\n    \"base\"\n  ]\n}\n"
  },
  {
    "path": "alert/index.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <title></title>\n  <link href=\"https://fonts.googleapis.com/css?family=Dosis|Raleway:400,700|Roboto:300,400,500,600,900,\" rel=\"stylesheet\">\n  <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n  <link rel=\"stylesheet\" href=\"../base/reset.css\">\n  <link rel=\"stylesheet\" href=\"../base/mobileui.css\">\n  <link rel=\"stylesheet\" href=\"../base/colors.css\">\n  <link rel=\"stylesheet\" href=\"../base/icons.css\">\n  <link rel=\"stylesheet\" href=\"../header/style.css\">\n  <link rel=\"stylesheet\" href=\"../button/style.css\">\n  <link rel=\"stylesheet\" href=\"../list/style.css\">\n  <link rel=\"stylesheet\" href=\"../input/style.css\">\n  <link rel=\"stylesheet\" href=\"../cover/style.css\">\n  <link rel=\"stylesheet\" href=\"style.css\">\n  <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n  <style>\n    .content {\n      margin-left: 50px\n    }\n  </style>\n  <script type=\"text/javascript\" src=\"script.js\"></script>\n</head>\n<body class=\"content\">\n  <!-- BEGIN -->\n  <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">Alert</h2>\n  <p>\n    Alerts are a great way to offer the user the ability to choose a specific action or list of actions. They also can provide the user with important information, or require them to make a decision (or multiple decisions).\n  </p>\n  <p>\n    From a UI perspective, Alerts can be thought of as a type of “floating” modal that covers only a portion of the screen. This means Alerts should only be used for quick actions like password verification, small app notifications, or quick options.\n  </p>\n  <div class=\"dependency tooltip\">\n    <strong>Dependency:</strong> <code>base</code>.\n    <span class=\"tooltiptext\">The dependencies will be installed together with this module</span>\n  </div>\n  <p>\n    To use this component you need install with the command:\n  </p>\n  <pre>mobileui install alert</pre>\n  <!-- _DOC_GENERATE_CSS_DOC -->\n  <p>\n    To use, you need to call the function <code>alert('YOUR MESSAGE')</code> or <code>alert(objectCustomized)</code>, and you can send more paramters for create alert with title or multiple options.\n  </p>\n  <p>\n    See this small example:\n  </p>\n<textarea class=\"bind-code\" mode=\"text/html\" header-absolute=\"true\" replace=\"body,div|padding,padding body\" height-preview=\"400px\" border=\"true\" multiplatform=\"true\">\n<body class=\"padding\">\n  <button class=\"blue full radius margin-bottom\" onclick=\"alert('Simple message here!')\">Show message</button>\n  <button class=\"blue full radius margin-bottom\" onclick=\"alert('Simple message here!', 'Title message')\">Show message with title</button>\n  <button class=\"blue full radius margin-bottom\" onclick=\"alert('Simple <br/> message <strong>here</strong>!')\">Show message with HTML</button>\n  <button class=\"blue full radius margin-bottom\" onclick=\"showMyCustomizedAlert()\">Show customized alert</button>\n  <button class=\"blue full radius margin-bottom\" onclick=\"showWithCustomId()\">Show with custom ID</button>\n\n  <script>\n    function showMyCustomizedAlert(){\n      alert({\n        title:'My alert',\n        message:'This is my customized alert!',\n        buttons:[\n          {\n            label: 'OK',\n            onclick: function(){\n              //You code when user click in OK button.\n              closeAlert();\n            }\n          },\n          {\n            label:'Cancel',\n            onclick: function(){\n              closeAlert();\n            }\n          }\n        ]\n      });\n    }\n\n    function showWithCustomId(){\n      alert({\n        title:'My alert 2',\n        message:'This is my customized alert! <br> <button onclick=\"closeCustomAlert()\">Close custom alert!</button>',\n        id: 'my-custom-id-alert'\n      });\n    }\n\n    function closeCustomAlert() {\n      closeAlert('my-custom-id-alert')\n    }\n  </script>\n</body></textarea>\n  <p>You can add <code>class</code> with more advanced customized alert:</p>\n  <textarea class=\"bind-code\" mode=\"text/html\" header-absolute=\"true\" replace=\"body,div|padding,padding body\" height-preview=\"400px\" border=\"true\" multiplatform=\"true\">\n  <body class=\"padding\">\n    <button class=\"blue full radius margin-bottom\" onclick=\"deleteItem()\">Delete item</button>\n\n    <script>\n      function deleteItem(){\n        alert({\n          title:'Alert',\n          message:'Are you sure you want to delete this item?',\n          class:'red',\n          buttons:[\n            {\n              label: 'YES',\n              class:'red-900'\n            },\n            {\n              label:'NO',\n              class:'text-white'\n            }\n          ]\n        });\n      }\n    </script>\n  </body></textarea>\n  <p>Another option like modal component you can add <code>list</code> and <code>input</code> by <code>template</code>  with more advanced customized alert:</p>\n<textarea class=\"bind-code\" mode=\"text/html\" header-absolute=\"true\" replace=\"body,div|padding,padding body\" height-preview=\"600px\" border=\"true\" multiplatform=\"true\">\n<body class=\"padding\">\n  <button class=\"purple full radius margin-bottom\" onclick=\"alertForm()\">Finish process</button>\n\n  <div class=\"hidden\" id=\"template-alert-custom\">\n    <div class=\"list\">\n      <div class=\"item\">\n        <input type=\"text\" placeholder=\"Add an comment about process...\" autofocus>\n      </div>\n      <label class=\"item\">\n        <div class=\"left\">\n            <input type=\"radio\" name=\"user\" class=\"purple\">\n        </div>\n        <h2>The process was well executed</h2>\n      </label>\n      <label class=\"item\">\n        <div class=\"left\">\n          <input type=\"radio\" name=\"user\" class=\"purple\">\n        </div>\n        <h2>The process was run in error</h2>\n      </label>\n      <label class=\"item\">\n        <div class=\"left\">\n          <input type=\"radio\" name=\"user\" class=\"purple\">\n        </div>\n        <h2>The process was not executed</h2>\n      </label>\n    </div>\n  </div>\n\n  <script>\n    function alertForm(){\n      alert({\n        title:'Finish process',\n        message:'Fill in the options to finalize the process',\n        template: 'template-alert-custom',\n        width:'90%',\n        buttons:[\n          {\n            label: 'Finish'\n          },\n          {\n            label:'Cancel'\n          }\n        ]\n      });\n    }\n  </script>\n</body></textarea>\n<p>If you need make bind in inputs into a <code>alert</code> just listener event:</p>\n<textarea class=\"bind-just-code\" mode=\"text/javascript\">\ndocument.addEventListener('alertOpened', function(e){\n  //TODO\n})\n  </textarea>\n  <!-- DONE -->\n  <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n  <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n  <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n  <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "alert/script.js",
    "content": "window.alert = function (message, title) {\n  var configAlert = {}\n  if (typeof message === 'object') {\n    configAlert = message\n  } else {\n    configAlert.message = message\n    configAlert.title = title\n  }\n  if (!configAlert.id) {\n    configAlert.id = 'ALERT' + new Date().getTime()\n  }\n  if (!configAlert.buttons || !configAlert.buttons.length) {\n    configAlert.buttons = [\n      {\n        label: 'OK',\n        onclick: function () {\n          closeAlert()\n        }\n      }\n    ]\n  }\n  var body = document.getElementsByTagName('body')[0]\n  if (event && event.target && event.target.parentNode && event.target.parentNode.className.indexOf('body') >= 0) {\n    body = event.target.parentNode\n  }\n\n  var e = document.createElement('div')\n  e.className = 'backdrop show backdrop-alert'\n  e.id = configAlert.id + '_BACKDROP'\n  body.appendChild(e)\n\n  var alertMobileUI = document.createElement('div')\n  alertMobileUI.className = 'alert-mobileui'\n  alertMobileUI.id = configAlert.id\n  e.parentNode.appendChild(alertMobileUI)\n\n  var alertContent = document.createElement('div')\n  if (!configAlert.class) {\n    configAlert.class = 'white'\n  }\n  alertContent.className = 'alert ' + configAlert.class\n  if (configAlert.width) {\n    alertContent.style.maxWidth = configAlert.width\n  }\n  alertMobileUI.appendChild(alertContent)\n\n  if (configAlert.title) {\n    var h1 = '<h1>' + configAlert.title + '</h1>'\n    alertContent.insertAdjacentHTML('beforeend', h1)\n  }\n  if (configAlert.message) {\n    var p = '<p>' + configAlert.message + '</p>'\n    alertContent.insertAdjacentHTML('beforeend', p)\n  }\n  if (configAlert.template) {\n    alertContent.insertAdjacentHTML('beforeend', document.getElementById(configAlert.template).innerHTML)\n  }\n\n  var buttons = document.createElement('div')\n  buttons.className = 'buttons'\n  alertContent.appendChild(buttons)\n\n  for (var i in configAlert.buttons) {\n    var button = document.createElement('button')\n    if (!configAlert.buttons[i].class) {\n      configAlert.buttons[i].class = 'text-teal'\n    }\n    button.className = configAlert.buttons[i].class\n    var text = document.createTextNode(configAlert.buttons[i].label)\n    button.appendChild(text)\n    if (!configAlert.buttons[i].onclick) {\n      configAlert.buttons[i].onclick = closeAlert\n    }\n    button.addEventListener('click', configAlert.buttons[i].onclick)\n    buttons.appendChild(button)\n  }\n  var customEvent = new CustomEvent('alertOpened')\n  document.dispatchEvent(customEvent)\n}\n\nwindow.closeAlert = function (id) {\n  alertId = id\n  if (!alertId) {\n    alertId = event.target.parentNode.parentNode.parentNode.id\n  }\n  var alert = document.getElementById(alertId)\n  alert.parentNode.removeChild(alert)\n  var backdrop = document.getElementById(alertId + '_BACKDROP')\n  backdrop.parentNode.removeChild(backdrop)\n}\n"
  },
  {
    "path": "alert/style.css",
    "content": ".alert-mobileui {\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-box-pack: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  -webkit-box-align: center;\n  -ms-flex-align: center;\n  align-items: center;\n  position: absolute;\n  z-index: 99999;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n}\n.alert-mobileui .alert {\n  font-family: 'Roboto', 'Noto', sans-serif;\n  -webkit-font-smoothing: antialiased;\n  -webkit-box-flex: 1;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  position: relative;\n  border-radius: 2px;\n  box-shadow: 0 16px 24px 2px rgba(0, 0, 0, .14), 0 6px 30px 5px rgba(0, 0, 0, .12), 0 8px 10px -5px rgba(0, 0, 0, .4);\n  max-width: 270px;\n}\n.platform-ios .alert-mobileui .alert {\n  font-family: -apple-system, 'Helvetica Neue', 'Helvetica', 'Arial', 'Lucida Grande', sans-serif;\n  border-radius: 8px;\n  background-color: #fff !important;\n  box-shadow: none;\n}\n.alert-mobileui .alert h1 {\n  text-align: left;\n  font-size: 20px;\n  font-weight: 500;\n  padding:22px 22px 0 24px;\n}\n.platform-ios .alert-mobileui .alert h1 {\n  font-size: 17px;\n  font-weight: 500;\n  text-align: center;\n  color: #000 !important;\n  padding: 0;\n  padding-top: 22px;\n}\n.alert-mobileui .alert p {\n  text-align: left;\n  font-size: 16px;\n  font-weight: 400;\n  line-height: 20px;\n  padding: 0 24px;\n  margin-top:24px;\n  margin-bottom: 24px;\n  min-height: 0;\n  opacity: 0.8;\n}\n.platform-ios .alert-mobileui .alert p {\n  font-size: 14px;\n  text-align: center;\n  color: #000 !important;\n}\n.alert-mobileui .alert .buttons {\n  display: inline-block;\n  box-sizing: border-box;\n  width: 100%;\n}\n.alert-mobileui .alert .buttons button {\n  text-transform: uppercase;\n  display: inline-block;\n  width: auto;\n  min-width: 70px;\n  float: right;\n  background: none;\n  border-top: none;\n  font-size: 14px;\n  font-weight: 600;\n  outline: none;\n  margin-right: 5px;\n  text-transform: uppercase;\n}\n.platform-ios .alert-mobileui .alert .buttons button {\n  width: 100%;\n  text-align: center;\n  text-transform: none;\n  font-weight: 400;\n  font-size: 16px;\n  border-top: 1px solid #ddd;\n  padding: 0 8px;\n  margin-right: 0;\n  color: rgba(24, 103, 194, .81) !important;\n  background: none !important;\n\n}"
  },
  {
    "path": "assets/css/master.css",
    "content": "body {\n  -webkit-touch-callout: text;\n  -webkit-text-size-adjust: text;\n  -webkit-user-select: text;\n  overflow: auto !important;\n}\n.header-star {\n  position: absolute;\n  margin-left: 165px;\n}\n.font-dosis {\n  font-family: 'Dosis', sans-serif;\n}\n.font-raleway {\n  font-family: 'Raleway', sans-serif;\n}\n.font-roboto {\n  font-family: 'Roboto', sans-serif;\n}\nol, ul {\n    list-style: none;\n}\nbutton.show-doc {\n  color: #2f94cf;\n    text-decoration: underline;\n}\n.content {\n  position: inherit;\n  width: 100%;\n  max-height: 600px;\n  overflow: auto;\n}\n.content-doc-reader {\n  display: inline-block;\n  width: 100%;\n}\n.content-doc-reader a[target=\"_blank\"] {\n  opacity: 0.8;\n  transition: .1s ease-in-out;\n  transition-property: opacity, border-color;\n  color: #004bc9;\n  text-decoration: none;\n  font-weight: bold;\n}\n.content-doc-reader a[target=\"_blank\"]:hover {\n  background-color: #004bc9;\n  color: #fff;\n}\n.content-doc-reader a[target=\"_blank\"]:hover i {\n  color: #fff;\n}\na {\n  border-bottom: 1px dotted #000;\n}\na.show-doc {\n  font-size: 14px;\n}\n.result a {\n  cursor: pointer;\n  color: #000;\n  text-decoration: none;\n}\n.result.result-icon .icon {\n  margin: 5px;\n}\n.dependency {\n  color: rgba(0, 0, 0, 0.4);\n  float: right;\n  font-size: 14px;\n  margin-top: -10px;\n}\n.dependency strong {\n  font-weight: 700;\n}\n.tooltip {\n    position: relative;\n    display: inline-block;\n}\n.tooltip .tooltiptext {\n    visibility: hidden;\n    width: 320px;\n    background-color: black;\n    color: #fff;\n    text-align: center;\n    padding: 5px 0;\n    border-radius: 6px;\n    right: 0;\n    position: absolute;\n    z-index: 1;\n}\n.tooltip:hover .tooltiptext {\n    visibility: visible;\n}\n.top {\n  background-color: #24292e;\n  padding: 0 20px;\n  margin: 0 auto;\n  display: flex;\n  -webkit-flex-direction: row;\n  -ms-flex-direction: row;\n  flex-direction: row;\n  -webkit-justify-content: space-between;\n  -ms-flex-pack: justify;\n  justify-content: space-between;\n  height: 80px;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  position: initial;\n}\n.top img {\n  display: flex;\n  -webkit-flex-direction: column;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  line-height: 0;\n  max-width: 150px;\n}\n.top ul {\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: row;\n  -ms-flex-direction: row;\n  flex-direction: row;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  list-style: none;\n}\n.top li {\n  white-space: nowrap;\n  margin: 0 28px 0 0;\n  padding: 0;\n  position: relative;\n}\n.top a {\n  color: rgba(255, 255, 255, 0.7);\n}\n.top a:hover {\n  color: rgba(255, 255, 255, 1);\n}\n.menuland {\n  position: absolute;\n  width: 280px;\n  overflow: auto;\n  padding: 50px;\n  padding-top: 30px;\n}\n.menuland li {\n  font-size: 16px;\n}\n.menuland h1,\n.content-land h2.title-doc {\n  font-size: 18px;\n  font-weight: 700;\n  margin-bottom: 10px;\n  margin-top: 10px;\n  color: #24292e;\n  text-transform: uppercase;\n}\n.content-land .content-doc-reader h2.title-doc {\n  margin-top: 0;\n}\n.content-land h2.title-doc {\n  padding-top: 50px;\n}\n.menuland h1:first-child {\n  margin-top: 0;\n}\n.menuland a {\n  color: rgba(0, 0, 0, 0.8);\n}\n.menuland li {\n  padding: 8px;\n}\n.menuland li.move-focus::before {\n  content: \"\";\n  width: 10px;\n  height: 10px;\n  border-radius: 50%;\n  background-color: #579480;\n  position: absolute;\n  margin-left: -12px;\n  margin-top: 4px;\n}\n#searchComponent {\n  padding-left: 5px;\n}\n.menuland li:hover, .menuland a.active li {\n  background-color: #7fc7af;\n}\n.menuland::-webkit-scrollbar {\n    display: none;\n}\n.menuland a:target li{\n  border-left: 4px solid #7fc7af;\n}\n.menuland.hasScrolled {\n  position: fixed;\n  top: 0;\n  bottom: 0;\n  height: 100%;\n}\n.content-land {\n  max-width: 100%;\n  margin-left: 320px;\n  font-size: 18px;\n  padding-right: 50px\n}\n.content-land p {\n  line-height: 30px;\n  padding-bottom: 15px;\n  font-size: 16px;\n}\n.content-land p.text-small {\n  font-size: 14px;\n}\n.content-land .result p {\n  font-size: 14px;\n}\npre, .CodeMirror {\n  padding: 20px;\n  background-color: #f2f2f2;\n  height: auto;\n  margin-top: 20px;\n  margin-bottom: 20px;\n  font-size: 14px;\n}\n.CodeMirror-scroll {\n  overflow-y: hidden !important;\n  overflow-x: auto !important;\n}\n.color-group {\n  float: left;\n  width: 50%;\n  font-family: arial;\n  font-size: 12px;\n  padding: 10px;\n}\n.color-group .color {\n  float: left;\n  padding: 12px;\n  color: #fff;\n  width: 50%;\n}\n.color-group .color.main-color {\n  width: 100%;\n}\n.color-group .color.dark {\n  color: rgba(0, 0, 0, 0.8);\n}\n.color-group .color span {\n  display: block;\n  font-size: 11px;\n  font-weight: 300;\n}\n.color-palettes {\n  display: inline-block;\n  width: 100%;\n  padding-bottom: 20px;\n}\n.sub-title-doc {\n  margin-top: 20px;\n}\n.result {\n  font-family: 'Roboto', sans-serif;\n  max-width: 400px;\n  position: relative;\n  overflow: hidden;\n}\n.result.height-change > div{\n  height: 100%;\n}\n.result.with-border {\n  border: 1px solid #ccc;\n}\n.result p {\n  margin-top: 5px;\n  margin-bottom: 5px;\n  padding: 0;\n  line-height: 20px;\n}\n.header {\n  position: inherit;\n}\n.footer {\n  position: absolute;\n}\n.header.header-absolute {\n  position: absolute;\n  max-width: 400px;\n}\ntextarea.bind-code {\n  display: none;\n}\n.cm-s-hidden-code {\n  display: none;\n}\n@media only screen and (min-width: 1300px) {\n    .color-group {\n      width: 33.33%;\n    }\n}\n@media only screen and (min-width: 1600px) {\n    .color-group {\n      width: 25%;\n    }\n}\n@media only screen and (min-width: 1900px) {\n    .color-group {\n      width: 20%;\n    }\n}\n@media only screen and (max-width: 500px) {\n    body, html {\n      width: 100% !important;\n    }\n    body {\n      padding: 10px;\n    }\n    .header-star {\n      position: inherit;\n      margin-left: 20px;\n    }\n    .top {\n      text-align: center;\n      display: block;\n      padding-top: 20px;\n    }\n    .top img{\n      display: inline-block;\n      margin:auto;\n    }\n    .top ul {\n      display: none;\n    }\n    .menuland {\n      display: none;\n    }\n    .content-land {\n      margin:0;\n      padding: 0;\n    }\n    .color-group {\n      width: 100%;\n    }\n}\na.button-contribute,\n.content-doc-reader a.button-contribute[target=\"_blank\"] {\n  font-size: 12px;\n  padding: 5px;\n  padding-left: 20px;\n  padding-right: 20px;\n  border-top: 0;\n  border-left: 0;\n  border-right: 0;\n  padding: 0;\n  margin-top: 10px;\n  border-color: #fff;\n  color: #686868;\n  font-weight: 400;\n}\n.button-contribute .icon {\n  font-size: 20px;\n  color: #686868;\n}\na.button-contribute:hover,\n.content-doc-reader a.button-contribute[target=\"_blank\"]:hover {\n  border-color: #ccc;\n  background: none;\n  color: #000;\n}\n.content-doc-reader a.button-contribute[target=\"_blank\"]:hover i {\n  color: #000;\n}\n.button-contribute .ion-social-github:before {\n  margin-left: 5px;\n  float: right;\n  margin-top: 3px;\n}\n.content-table {\n  margin-bottom: 10px;\n}\n.content-table tr.hidden{\n  display: none;\n}\n.hidden {\n  display: none;\n}\n.tableDoc {\n  max-width: 700px;\n  border: 1px solid #ebebeb;\n}\n.tableDoc th {\n  text-transform: uppercase;\n  font-weight: 600;\n  letter-spacing: .4px;\n  -webkit-transform: scaleY(.9);\n  transform: scaleY(.9);\n  text-rendering: optimizeLegibility;\n  padding: 8px 15px;\n  font-size: 14px;\n  text-align: left!important;\n  background: #fafafa;\n  border-bottom: 1px solid #ebebeb;\n  color: #9ca3a6;\n}\n.tableDoc td {\n  padding: 15px;\n  font-weight: 400;\n  text-rendering: optimizeLegibility;\n  font-size: 14px;\n  border-bottom: 1px solid #e1e1e1;\n}\n.tableDoc td:first-child {\n    text-align: right;\n    white-space: nowrap;\n}\n.tableDoc tr:last-child td {\n  border-bottom: 0;\n}\ncode {\n    padding: 4px;\n    color: #eb3838;\n    font-size: 14px;\n    border-radius: 3px;\n    border: 0 none;\n    margin: 0;\n    font-family: Consolas,'Liberation Mono',Menlo,Courier,monospace;\n    white-space: nowrap;\n    background: #f1f1f1;\n}\n.tableDoc td:first-child code {\n    padding: 3px 9px;\n    background: #fff2f2;\n}\n.header-bind-code .border-green {\n  border-top: 0;\n  border-left: 0;\n  border-right: 0;\n  border-width: 2px;\n  border-color: #7fc7af;\n}\n.header-bind-code {\n  border-bottom: 1px solid #e5e5e5;\n  text-transform: uppercase;\n  font-size: 14px;\n  margin-bottom: 10px;\n}\n.line {\n  width: 100%;\n  background-color: #e5e5e5;\n  height: 1px;\n  display: block;\n  clear: both;\n  margin-top: 10px;\n}\n.header-bind-code button.small {\n  background: none;\n  margin-right: 10px;\n  text-transform: uppercase;\n}\n.banner {\n  background-color: #24292e;\n  padding-top: 50px;\n  padding-bottom: 30px;\n  overflow: hidden;\n  height: 500px;\n  border-bottom: 2px solid #24292e;\n}\n.banner h1 {\n  color: rgba(255, 255, 255, 0.8);\n  font-weight: 200;\n  font-size: 35px;\n  text-align: center;\n  padding-left: 20px;\n  padding-right: 20px;\n}\n.banner h2 {\n  color: rgba(255, 255, 255, 0.5);\n  font-size: 20px;\n  font-weight: 300;\n  text-align: center;\n  padding-left: 20px;\n  padding-right: 20px;\n  padding-bottom: 40px;\n}\n.logo-placeholder {\n  text-align: center;\n  position: absolute;\n  width: 100%;\n}\n.hero-cards {\n    position: relative;\n    display: block;\n    overflow: hidden;\n    width: 100%;\n    min-height: 41em;\n    -webkit-backface-visibility: hidden;\n    backface-visibility: hidden;\n    visibility: hidden;\n    margin-top: 380px;\n}\n.hero-card-1,\n.hero-card-2,\n.hero-card-3,\n.hero-card-4,\n.hero-card-5,\n.hero-card-6,\n.hero-card-7,\n.hero-card-8,\n.hero-card-9 {\n  position: absolute;\n  top: 0;\n  left: 50%;\n  display: block;\n  margin-left: -157px;\n  box-shadow: 0 5px 10px 0 rgba(0,0,0,.4);\n  -webkit-backface-visibility: hidden;\n  backface-visibility: hidden;\n  overflow: hidden;\n  width: 307px;\n  height: 546px;\n  padding: 1px;\n  background-image: url(../img/sprite.jpg);\n  background-repeat: no-repeat;\n}\n.hero-card-1 {\n    z-index: 109!important;\n    display: block;\n    background-position: -10px -12px;\n}\n.hero-card-2 {\n    z-index: 108!important;\n    display: block;\n    background-position: -322px -12px;\n    margin-top: 50px;\n}\n.hero-card-3 {\n    z-index: 107!important;\n    display: block;\n    background-position: -630px -12px;\n    margin-top: 50px;\n}\n.hero-card-4 {\n    z-index: 106!important;\n    display: block;\n    background-position: -944px -12px;\n    margin-top: 75px;\n}\n.hero-card-5 {\n    z-index: 105!important;\n    display: block;\n    background-position: -1252px -12px;\n    margin-top: 75px;\n}\n.hero-card-6 {\n    z-index: 104!important;\n    display: block;\n    background-position: -1566px -12px;\n    margin-top: 100px;\n}\n.hero-card-7 {\n    z-index: 103!important;\n    display: block;\n    background-position: -1875px -12px;\n    margin-top: 100px;\n}\n.menu {\n  position: absolute !important;\n}\n.backdrop {\n  position: absolute !important;\n}\n.float-bottom-right, .float-bottom-left {\n  position: absolute !important;\n}\n.header p, .footer p {\n  padding-left: 10px;\n  margin: 0;\n  margin-top: -4px;\n}\n.gitter-chat-embed {\n  z-index: 1100;\n}\n"
  },
  {
    "path": "assets/js/main.js",
    "content": "var theme = 'default'\nvar mode = 'text/html'\nvar idGenerate = 100\n\nif(window.SO) {\n  window.SO.code = 1;\n} else {\n  window.SO = {\n    code : 1\n  }\n}\n\n$(document).ready(function(){\n  $('#searchComponent input').keyup(function(e){\n    var value = this.value;\n    if(value) {\n      $('.menuland ul a').addClass('hidden');\n      $('.menuland h1').addClass('hidden');\n      $('.menuland ul li').each(function(i, e){\n        if($(e).text().toUpperCase().indexOf(value.toUpperCase()) >= 0){\n          $(e).parent().removeClass('hidden');\n          $(e).parent().parent().prev().removeClass('hidden');\n        }\n      });\n    } else {\n      $('.menuland ul a ').removeClass('hidden');\n      $('.menuland h1').removeClass('hidden');\n    }\n    if(e.keyCode === 40 || e.keyCode === 38){\n      moveFocusMenu(e.keyCode);\n    } else if(e.keyCode === 13){\n      selectMovedMenu();\n    }\n  });\n  var moveFocusMenu = function(keyCode){\n    if(keyCode === 40){\n      var elmFocus = $('.menuland ul li.move-focus:visible');\n      if(!elmFocus.length && $('.menuland ul li:visible').length){\n        $($('.menuland ul li:visible')[0]).addClass('move-focus');\n      } else {\n        var moveNextBind = false;\n        $('.menuland ul li:visible').each(function(i, e){\n          if($(e).is('.move-focus') && !moveNextBind){\n            $($('.menuland ul li:visible')[i+1]).addClass('move-focus');\n            $(e).removeClass('move-focus');\n            moveNextBind=true;\n          }\n        });\n      }\n    } else {\n      var elmFocus = $('.menuland ul li.move-focus:visible');\n      if(!elmFocus.length && $('.menuland ul li:visible').length){\n        $($('.menuland ul li:visible').last()).addClass('move-focus');\n      } else {\n        var moveNextBind = false;\n        $('.menuland ul li:visible').each(function(i, e){\n          if($(e).is('.move-focus') && !moveNextBind){\n            $($('.menuland ul li:visible')[i-1]).addClass('move-focus');\n            $(e).removeClass('move-focus');\n            moveNextBind=true;\n          }\n        });\n      }\n    }\n  }\n  var selectMovedMenu = function(){\n    var elmFocus = $('.menuland ul li.move-focus:visible');\n    if(elmFocus.length){\n      elmFocus.parent()[0].click();\n      setTimeout(function(){\n        $('#searchComponent input').focus();\n      }, 200);\n    }\n  }\n  var animeBanner = function(){\n    $('.hero-cards').clearQueue().stop().animate({ marginTop: \"0\" }, 1000, function() {\n      $('.hero-card-2').clearQueue().stop().animate({ left: \"-=250\" }, 1000, function() {\n        $('.hero-card-4').clearQueue().stop().animate({ left: \"-=400\" }, 1000, function() {\n          $('.hero-card-6').clearQueue().stop().animate({ left: \"-=500\" }, 1000, function() {\n\n          });\n        });\n      });\n      $('.hero-card-3').clearQueue().stop().animate({ left: \"+=250\" }, 1000, function() {\n        $('.hero-card-5').clearQueue().stop().animate({ left: \"+=400\" }, 1000, function() {\n          $('.hero-card-7').clearQueue().stop().animate({ left: \"+=500\" }, 1000, function() {\n\n          });\n        });\n      });\n    });\n  }\n\n  var tmpImg = new Image();\n  tmpImg.src = '/img/sprite.jpg';\n  tmpImg.onload = function() {\n    $('.hero-cards').css('visibility','visible');\n    animeBanner();\n  };\n\n  $(window).resize(function() {\n    $('.hero-card-2').clearQueue().stop();\n    $('.hero-card-3').clearQueue().stop();\n    $('.hero-card-4').clearQueue().stop();\n    $('.hero-card-5').clearQueue().stop();\n    $('.hero-card-6').clearQueue().stop();\n    $('.hero-card-7').clearQueue().stop();\n\n    $('.hero-card-2').removeAttr('style');\n    $('.hero-card-3').removeAttr('style');\n    $('.hero-card-4').removeAttr('style');\n    $('.hero-card-5').removeAttr('style');\n    $('.hero-card-6').removeAttr('style');\n    $('.hero-card-7').removeAttr('style');\n    animeBanner();\n  });\n\n  $('textarea.bind-code-example').each(function(i, block) {\n    if($(block).attr('mode')) {\n      mode = $(block).attr('mode')\n    }\n    CodeMirror.fromTextArea(block, {\n      lineNumbers: false,\n      mode: mode,\n      theme: theme,\n      readOnly: true\n    });\n  });\n  $('textarea.bind-just-code').each(function(i, block) {\n    var code = $(block).val()\n    var mode = $(block).attr('mode')\n    CodeMirror.fromTextArea(block, {\n      lineNumbers: false,\n      mode: mode,\n      theme: theme,\n      readOnly: true\n    });\n  });\n  $('textarea.bind-code').each(function(i, block) {\n    var code = $(block).val()\n    var mode = $(block).attr('mode')\n    var border = $(block).attr('border')\n    var absolute = $(block).attr('header-absolute')\n    var execMobileuiBind = $(block).attr('exec-mobileui-bind')\n    var replace = $(block).attr('replace')\n    var hidden = $(block).attr('hidden')\n    var multiplatform = $(block).attr('multiplatform')\n    var heightPreview = $(block).attr('height-preview')\n    var idResult = $(block).attr('id-result')\n    var customClass = $(block).attr('custom-class')\n    if(replace) {\n      replace = replace.split('|');\n      for(var i in replace){\n        code = code.replace(new RegExp(replace[i].split(',')[0], 'g'), replace[i].split(',')[1]);\n      }\n    }\n    if(absolute) {\n      code = code.replace(new RegExp('\"header', 'g'), '\"header header-absolute')\n    }\n    var resultStyle = ''\n    var resultClass = 'result'\n    var id = idResult ? idResult : ++idGenerate;\n    $(block).attr('id',id+'_code');\n    var attrs = ' id=\"'+id+'\" '\n    if(border) {\n      resultClass += ' with-border'\n    }\n    if(heightPreview) {\n      resultStyle += 'height:'+heightPreview\n      resultClass += ' height-change'\n    }\n    if(customClass) {\n      resultClass += ' ' + customClass;\n    }\n    var divHeader = '<div class=\"header-bind-code\">';\n    if(multiplatform) {\n      divHeader += '<button class=\"small border-green\" onclick=\"previewPlatform(this, '+id+', 1)\">Preview Android</button>';\n      divHeader += '<button class=\"small\" onclick=\"previewPlatform(this, '+id+', 2)\">Preview iOS</button>';\n    } else {\n      divHeader += '<button class=\"small border-green\" onclick=\"showPreview(this, '+id+')\">Preview</button>';\n    }\n    divHeader += '<button class=\"small\" onclick=\"showCode(this, '+id+')\">Code</button>';\n    divHeader += '</div>'\n    if(code.indexOf('openPage(') >= 0) {\n      code = code.replace('openPage(','openPageDemo('+id+',');\n    }\n    $(block).after(divHeader+'<div '+attrs+' class=\"'+resultClass+'\" style=\"'+resultStyle+'\">'+code+'<div class=\"cls\"></div></div><div class=\"line\"></div>')\n    if(execMobileuiBind){\n      setTimeout(function(){\n        if(MobileUI && MobileUI.bind){\n          MobileUI.bind();\n        }\n        bindProgressCircle();\n      },500);\n    }\n  });\n\n  var $document = $(document);\n  var $element = $('.menuland');\n  var className = 'hasScrolled';\n\n  function checkVisible(elm) {\n    var rect = elm.getBoundingClientRect();\n    var viewHeight = Math.max(document.documentElement.clientHeight, window.innerHeight);\n    return (rect.top <= 0 && rect.bottom > 0);\n  }\n\n  window.goDoc = function (idDoc){\n    ga('set', 'page', '/'+idDoc);\n    ga('send', 'pageview');\n  }\n\n  var checkScroll = function(){\n    if ($document.scrollTop() >= 580) {\n      $element.addClass(className);\n    } else {\n      $element.removeClass(className);\n    }\n  }\n  var checkHashSection = function(){\n    var found=false;\n    $('.content-doc-reader').each(function(i,e){\n      if(!found) {\n        if(checkVisible(e)){\n          found=true;\n          var idDoc = $(e).find('h2.title-doc').attr('id');\n          $('.menuland a').removeClass('active');\n          $('.menuland a[href=\"#'+idDoc+'\"]').addClass('active');\n          var movedLink = $('.menuland ul li.move-focus:visible');\n          if(movedLink.length && movedLink.parent().attr('href') != \"#'+idDoc+'\" && $('.menuland a[href=\"#'+idDoc+'\"]').is(':visible')){\n            movedLink.removeClass('move-focus');\n            $('.menuland a[href=\"#'+idDoc+'\"] li').addClass('move-focus');\n          }\n          if(location.hash !== '#'+idDoc){\n            ga('set', 'page', '/'+idDoc);\n            ga('send', 'pageview');\n          }\n          window.history.replaceState(\"\", document.title, '#'+idDoc);\n        }\n      }\n    });\n  }\n\n  checkScroll()\n  checkHashSection()\n\n  $document.scroll(function() {\n    checkScroll()\n    checkHashSection()\n  });\n\n  $('.tableDoc').each(function(i,e){\n    var elm = $(e);\n    if((elm.find('tr').length-1) > 4) {\n      var trs = elm.find('tr')\n      for(i in trs){\n        if(i > 4) {\n            $(trs[i]).addClass('hidden')\n        }\n      }\n      var bt = $('<button class=\"show-doc\">Show all '+(elm.find('tr').length-1)+' features.</button>');\n      bt.click(function(){\n        if($(this).text().indexOf('Hide') < 0) {\n          $(this).prev().find('tr').removeClass('hidden')\n          $(this).text('Hide features table');\n        } else {\n          $(this).text('Show all '+($(this).prev().find('tr').length-1)+' features');\n          var trs = $(this).prev().find('tr')\n          for(i in trs){\n            if(i > 4) {\n                $(trs[i]).addClass('hidden')\n            }\n          }\n          $document.scrollTop($(this).position().top - 295)\n        }\n      });\n      elm.parent().after(bt);\n    }\n  });\n\n})\n\nwindow.showPreview = function(e, id){\n  $(e).parent().find('.border-green').removeClass('border-green');\n  $(e).addClass('border-green');\n  $('#'+id).removeClass('hidden');\n  if($('textarea[id=\"'+id+'_code\"]').next().is('.CodeMirror')){\n    $('textarea[id=\"'+id+'_code\"]').next().addClass('hidden');\n  }\n}\n\nwindow.showCode = function(e, id){\n  $(e).parent().find('.border-green').removeClass('border-green');\n  $(e).addClass('border-green');\n  $('#'+id).addClass('hidden');\n  if(!$('textarea[id=\"'+id+'_code\"]').is('.binded')){\n    $('textarea[id=\"'+id+'_code\"]').addClass('binded');\n    $('#'+id).after($('textarea[id=\"'+id+'_code\"]'));\n    CodeMirror.fromTextArea($('textarea[id=\"'+id+'_code\"]')[0], {\n      lineNumbers: false,\n      mode: mode,\n      theme: theme,\n      readOnly: true\n    });\n  } else {\n    if($('textarea[id=\"'+id+'_code\"]').next().is('.CodeMirror')){\n      $('textarea[id=\"'+id+'_code\"]').next().removeClass('hidden');\n    }\n  }\n}\n\nwindow.previewPlatform = function(e, id, p){\n  $(e).parent().find('.border-green').removeClass('border-green');\n  $(e).addClass('border-green');\n  $('#'+id).removeClass('hidden');\n  if($('textarea[id=\"'+id+'_code\"]').next().is('.CodeMirror')){\n    $('textarea[id=\"'+id+'_code\"]').next().addClass('hidden');\n  }\n  if(p === 1){\n    $('#'+id).removeClass('platform-ios').addClass('platform-android');\n    SO.code = 1;\n    $('#'+id).css('max-width','400px');\n  } else {\n    $('#'+id).removeClass('platform-android').addClass('platform-ios');\n    SO.code = 2;\n    $('#'+id).css('max-width','320px');\n  }\n}\n\nwindow.openPageDemo = function(id, p, params, callback){\n  if(arguments.length===3) {\n    callback = params\n  }\n  var xhttp = new XMLHttpRequest();\n  if(p.indexOf('.html') < 0){\n    p =p+'.html';\n  }\n  xhttp.onreadystatechange = function() {\n    if (this.readyState == 4 && this.status == 200) {\n      var page = this.responseText;\n      page = page.replace('openPage(', 'openPageDemo('+id+',');\n      page = page.replace('openPage(', 'openPageDemo('+id+',');\n      page = page.replace('openPage(', 'openPageDemo('+id+',');\n      page = page.replace('openPage(', 'openPageDemo('+id+',');\n      page = page.replace('backPage()','backPage(\\''+p+'\\')');\n      var body = document.getElementById(id)\n      var div = document.createElement('div')\n      div.setAttribute('class','box-block')\n      div.setAttribute('id',p)\n      div.innerHTML = page;\n      body.appendChild(div)\n      window.PAGE.handePage++\n      var firstStyle = 'z-index:'+window.PAGE.handePage\n      var secondStyle = ';transform: translateY(0px);will-change: transform, -webkit-transform, opacity;transition-duration: 280ms;transition-timing-function: cubic-bezier(0.36,0.66,0.04,1);'\n      if(SO.code === 2){\n        secondStyle = ';transform: translateX(0px);transition-duration: 280ms;'\n      }\n      if(window.disabledOpenPageEffect) {\n        secondStyle = ';opacity: 1;top: 0;'\n      }\n      var newStyle = document.getElementById(p).getElementsByClassName('page')[0].getAttribute('style')\n      if(newStyle) {\n        newStyle += ' '+firstStyle + secondStyle\n      } else {\n        newStyle = firstStyle + secondStyle\n      }\n      document.getElementById(p).getElementsByClassName('page')[0].setAttribute(\"style\", newStyle);\n      if(callback) {\n        window.dispatch(callback, [params]);\n      }\n      var newClass = document.getElementById(p).getElementsByClassName('page')[0].getAttribute('class')\n      newClass += ' show';\n      var validOpenPage = function(){\n        setTimeout(function(){\n          if(document.getElementById(p) && document.getElementById(p).querySelectorAll('.page').length){\n            showPageBind();\n          } else {\n            validOpenPage();\n          }\n        },10);\n      }\n      validOpenPage();\n      var showPageBind = function(){\n        setTimeout(function(){\n          document.getElementById(p).getElementsByClassName('page')[0].setAttribute('class',newClass)\n          setTimeout(function(){\n            var style = document.getElementById(p).getElementsByClassName('page')[0].getAttribute('style')\n            style = style.replace(secondStyle,'')\n            document.getElementById(p).getElementsByClassName('page')[0].setAttribute('style',style)\n          },280)\n        }, 100);\n      };\n    }\n  };\n  xhttp.open(\"GET\", p + '?cache='+new Date().getTime(), true);\n  xhttp.send();\n}\n\nwindow.openPopoverLand = function(p){\n  var button = event.target;\n  var rect = button.getBoundingClientRect();\n  var name = p;\n  var p = document.getElementById(p);\n  var e = document.createElement('div');\n  e.className = 'backdrop backdrop-popover';\n  p.parentNode.appendChild(e);\n  e.addEventListener('click', function(evt){\n    window.closePopover(name);\n  });\n  p.addEventListener('click', function(evt){\n    window.closePopover(name);\n  });\n  p.style += ';top: 110%;right: 10px;transform-origin: right top 0px;transform: scale(1);';\n  p.classList.add('show');\n  if(SO.code === 2) {\n    p.style.top = '45px';\n    p.style.right = '5px';\n    var divArrow = document.createElement('div');\n    divArrow.classList.add('popover-arrow');\n    p.parentNode.appendChild(divArrow);\n    divArrow.setAttribute('style','top:40px;right:15px');\n  } else {\n    var pHeight = p.clientHeight;\n    var pWidth = p.clientWidth;\n    p.style.height = 0;\n    p.style.width = 0;\n    p.style.top = '5px';\n    setTimeout(function(){\n      var style = p.getAttribute('style');\n      style += ' ;-webkit-transition: all 200ms ease;transition: all 200ms ease;';\n      p.setAttribute('style', style);\n      p.style.height = pHeight+'px';\n      p.style.width = pWidth+'px';\n    })\n  }\n}\nwindow.loadingLand = function(message){\n  var configLoading = {};\n  if(typeof message === \"object\"){\n    configLoading = message;\n  } else {\n    configLoading.message = message;\n  }\n  if(!configLoading.id){\n    configLoading.id = 'LOADING'+new Date().getTime();\n  }\n  var body = document.getElementsByTagName('body')[0];\n  if(event.target.parentNode.className.indexOf('body') >= 0) {\n    body = event.target.parentNode;\n  }\n\n  var e = document.createElement('div');\n  e.className = 'backdrop show backdrop-alert';\n  e.id = configLoading.id + '_BACKDROP';\n  body.parentNode.appendChild(e);\n\n  var alertMobileUI = document.createElement('div');\n  alertMobileUI.className = 'alert-mobileui alert-loading';\n  alertMobileUI.id = configLoading.id;\n  e.parentNode.appendChild(alertMobileUI);\n\n  var alertContent = document.createElement('div');\n  configLoading.class = 'white';\n  alertContent.className = 'alert ' + configLoading.class;\n  if(!window.SO || SO.code !== 2){\n    alertContent.innerHTML = '<svg class=\"loading-circle\" width=\"40\" height=\"40\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"20\" cy=\"20\" r=\"15\"></svg>';\n  } else {\n    alertContent.innerHTML = '<div class=\"loading-circle\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"37\" height=\"37\" viewBox=\"0 0 27 27\"><path d=\"M18.696,10.5c-0.275-0.479-0.113-1.09,0.365-1.367l4.759-2.751c0.482-0.273,1.095-0.11,1.37,0.368 c0.276,0.479,0.115,1.092-0.364,1.364l-4.764,2.751C19.583,11.141,18.973,10.977,18.696,10.5z\"/><path d=\"M16.133,6.938l2.75-4.765c0.276-0.478,0.889-0.643,1.367-0.366c0.479,0.276,0.641,0.886,0.365,1.366l-2.748,4.762 C17.591,8.415,16.979,8.58,16.5,8.303C16.021,8.027,15.856,7.414,16.133,6.938z\"/><path d=\"M13.499,7.5c-0.552,0-1-0.448-1-1.001V1c0-0.554,0.448-1,1-1c0.554,0,1.003,0.447,1.003,1v5.499 C14.5,7.053,14.053,7.5,13.499,7.5z\"/><path d=\"M8.303,10.5c-0.277,0.477-0.888,0.641-1.365,0.365L2.175,8.114C1.697,7.842,1.532,7.229,1.808,6.75 c0.277-0.479,0.89-0.642,1.367-0.368l4.762,2.751C8.416,9.41,8.58,10.021,8.303,10.5z\"/><path d=\"M9.133,7.937l-2.75-4.763c-0.276-0.48-0.111-1.09,0.365-1.366c0.479-0.277,1.09-0.114,1.367,0.366l2.75,4.765 c0.274,0.476,0.112,1.088-0.367,1.364C10.021,8.581,9.409,8.415,9.133,7.937z\"/><path d=\"M6.499,14.5H1c-0.554,0-1-0.448-1-1c0-0.554,0.447-1.001,1-1.001h5.499c0.552,0,1.001,0.448,1.001,1.001 C7.5,14.052,7.052,14.5,6.499,14.5z\"/><path d=\"M8.303,16.502c0.277,0.478,0.113,1.088-0.365,1.366l-4.762,2.749c-0.478,0.273-1.091,0.112-1.368-0.366 c-0.276-0.479-0.111-1.089,0.367-1.368l4.762-2.748C7.415,15.856,8.026,16.021,8.303,16.502z\"/><path d=\"M10.866,20.062l-2.75,4.767c-0.277,0.475-0.89,0.639-1.367,0.362c-0.477-0.277-0.642-0.886-0.365-1.365l2.75-4.764 c0.277-0.477,0.888-0.638,1.366-0.365C10.978,18.974,11.141,19.585,10.866,20.062z\"/><path d=\"M13.499,19.502c0.554,0,1.003,0.448,1.003,1.002v5.498c0,0.55-0.448,0.999-1.003,0.999c-0.552,0-1-0.447-1-0.999v-5.498 C12.499,19.95,12.946,19.502,13.499,19.502z\"/><path d=\"M17.867,19.062l2.748,4.764c0.275,0.479,0.113,1.088-0.365,1.365c-0.479,0.276-1.091,0.112-1.367-0.362l-2.75-4.767 c-0.276-0.477-0.111-1.088,0.367-1.365C16.979,18.424,17.591,18.585,17.867,19.062z\"/><path d=\"M18.696,16.502c0.276-0.48,0.887-0.646,1.365-0.367l4.765,2.748c0.479,0.279,0.64,0.889,0.364,1.368 c-0.275,0.479-0.888,0.64-1.37,0.366l-4.759-2.749C18.583,17.59,18.421,16.979,18.696,16.502z\"/><path d=\"M25.998,12.499h-5.501c-0.552,0-1.001,0.448-1.001,1.001c0,0.552,0.447,1,1.001,1h5.501c0.554,0,1.002-0.448,1.002-1 C27,12.946,26.552,12.499,25.998,12.499z\"/></svg></div>';\n  }\n  if(configLoading.message) {\n    alertContent.innerHTML += '<p>'+configLoading.message+'</p>';\n  }\n  alertMobileUI.appendChild(alertContent);\n\n  setTimeout(function(){\n    closeLoading();\n  },3000)\n}\n\nwindow.loadingLandElement = function(e, message, position, color){\n  e = document.getElementById(e);\n  var withMessage = message ? 'with-message' : '';\n  if(!color){\n    color = 'white-loading';\n  } else {\n    color = '';\n  }\n  if(!position) {\n    position = '';\n  }\n  var divLoading = document.createElement('div');\n  var spinner = '';\n  if(!window.SO || SO.code !== 2){\n    spinner = '<svg class=\"loading-circle loading-element '+color+' '+withMessage+' '+position+'\" width=\"40\" height=\"40\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"20\" cy=\"20\" r=\"15\"></svg>';\n  } else {\n    spinner = '<svg class=\"loading-circle loading-element '+color+' '+withMessage+' '+position+'\" xmlns=\"http://www.w3.org/2000/svg\" width=\"37\" height=\"37\" viewBox=\"0 0 27 27\"><path d=\"M18.696,10.5c-0.275-0.479-0.113-1.09,0.365-1.367l4.759-2.751c0.482-0.273,1.095-0.11,1.37,0.368 c0.276,0.479,0.115,1.092-0.364,1.364l-4.764,2.751C19.583,11.141,18.973,10.977,18.696,10.5z\"/><path d=\"M16.133,6.938l2.75-4.765c0.276-0.478,0.889-0.643,1.367-0.366c0.479,0.276,0.641,0.886,0.365,1.366l-2.748,4.762 C17.591,8.415,16.979,8.58,16.5,8.303C16.021,8.027,15.856,7.414,16.133,6.938z\"/><path d=\"M13.499,7.5c-0.552,0-1-0.448-1-1.001V1c0-0.554,0.448-1,1-1c0.554,0,1.003,0.447,1.003,1v5.499 C14.5,7.053,14.053,7.5,13.499,7.5z\"/><path d=\"M8.303,10.5c-0.277,0.477-0.888,0.641-1.365,0.365L2.175,8.114C1.697,7.842,1.532,7.229,1.808,6.75 c0.277-0.479,0.89-0.642,1.367-0.368l4.762,2.751C8.416,9.41,8.58,10.021,8.303,10.5z\"/><path d=\"M9.133,7.937l-2.75-4.763c-0.276-0.48-0.111-1.09,0.365-1.366c0.479-0.277,1.09-0.114,1.367,0.366l2.75,4.765 c0.274,0.476,0.112,1.088-0.367,1.364C10.021,8.581,9.409,8.415,9.133,7.937z\"/><path d=\"M6.499,14.5H1c-0.554,0-1-0.448-1-1c0-0.554,0.447-1.001,1-1.001h5.499c0.552,0,1.001,0.448,1.001,1.001 C7.5,14.052,7.052,14.5,6.499,14.5z\"/><path d=\"M8.303,16.502c0.277,0.478,0.113,1.088-0.365,1.366l-4.762,2.749c-0.478,0.273-1.091,0.112-1.368-0.366 c-0.276-0.479-0.111-1.089,0.367-1.368l4.762-2.748C7.415,15.856,8.026,16.021,8.303,16.502z\"/><path d=\"M10.866,20.062l-2.75,4.767c-0.277,0.475-0.89,0.639-1.367,0.362c-0.477-0.277-0.642-0.886-0.365-1.365l2.75-4.764 c0.277-0.477,0.888-0.638,1.366-0.365C10.978,18.974,11.141,19.585,10.866,20.062z\"/><path d=\"M13.499,19.502c0.554,0,1.003,0.448,1.003,1.002v5.498c0,0.55-0.448,0.999-1.003,0.999c-0.552,0-1-0.447-1-0.999v-5.498 C12.499,19.95,12.946,19.502,13.499,19.502z\"/><path d=\"M17.867,19.062l2.748,4.764c0.275,0.479,0.113,1.088-0.365,1.365c-0.479,0.276-1.091,0.112-1.367-0.362l-2.75-4.767 c-0.276-0.477-0.111-1.088,0.367-1.365C16.979,18.424,17.591,18.585,17.867,19.062z\"/><path d=\"M18.696,16.502c0.276-0.48,0.887-0.646,1.365-0.367l4.765,2.748c0.479,0.279,0.64,0.889,0.364,1.368 c-0.275,0.479-0.888,0.64-1.37,0.366l-4.759-2.749C18.583,17.59,18.421,16.979,18.696,16.502z\"/><path d=\"M25.998,12.499h-5.501c-0.552,0-1.001,0.448-1.001,1.001c0,0.552,0.447,1,1.001,1h5.501c0.554,0,1.002-0.448,1.002-1 C27,12.946,26.552,12.499,25.998,12.499z\"/></svg>';\n  }\n  e.oldValue = e.innerHTML;\n  e.innerHTML = spinner;\n  e.disabled=true;\n  if(message){\n    e.innerHTML += message;\n  }\n  setTimeout(function(){\n    closeLoading(e.id)\n  },4000);\n}\n\n\nsetTimeout(function(){\n  window.bindIncludeEvent();\n}, 500);\n\nfunction binderFire(){\n  if(window.ProgressCircle) ProgressCircle.bind();\n  if(window.ProgressSemicircle) ProgressSemicircle.bind();\n}\nsetInterval(binderFire, 500);\n"
  },
  {
    "path": "base/badge.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title></title>\n    <link href=\"https://fonts.googleapis.com/css?family=Dosis|Raleway:400,700|Roboto:300,400,900,\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n    <link rel=\"stylesheet\" href=\"reset.css\">\n    <link rel=\"stylesheet\" href=\"mobileui.css\">\n    <link rel=\"stylesheet\" href=\"colors.css\">\n    <link rel=\"stylesheet\" href=\"icons.css\">\n    <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n    <style>\n      .content { margin-left:50px}\n    </style>\n  </head>\n  <body class=\"content\">\n    <!-- BEGIN -->\n    <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">Badge</h2>\n    <p>Badges are used to provide additional information about something. In MobileUI you can create a card using base classes.</p>\n    <p>\n      If you have installed any component, the base classes are already installed. Otherwise run the command:\n    </p>\n    <pre>mobileui install base</pre>\n<textarea class=\"bind-code\" mode=\"text/html\">\n<span class=\"text-small green radius padding\">new</span>\n<span class=\"text-small purple radius padding\">family</span>\n<span class=\"text-small pink radius padding\">university</span>\n<div class=\"space\"></div>\n<span class=\"green radius padding\">new</span>\n<span class=\"purple radius padding\">family</span>\n<span class=\"pink radius padding\">university</span>\n<div class=\"space\"></div>\n<span class=\"text-big green radius padding\">new</span>\n<span class=\"text-big purple radius padding\">family</span>\n<span class=\"text-big pink radius padding\">university</span></textarea>\n<p>You can combinate this component with others, example a <a href=\"#list\">list</a>.</p>\n<textarea class=\"bind-code\" mode=\"text/html\">\n<div class=\"list\">\n  <div class=\"item\">\n    <img class=\"avatar circle left\" src=\"/img/96.jpg\">\n    <h2>Juster Mark Slow</h2>\n    <span class=\"text-small green radius padding\">new</span>\n    <span class=\"text-small purple radius padding\">family</span>\n    <span class=\"text-small pink radius padding\">university</span>\n  </div>\n  <div class=\"item\">\n    <img class=\"avatar circle left\" src=\"/img/33.jpg\">\n    <h2>Carter Hudson</h2>\n    <span class=\"text-small purple radius padding\">family</span>\n    <span class=\"text-small pink radius padding\">university</span>\n    <span class=\"text-small blue radius padding\">party</span>\n  </div>\n</div>\n</textarea>\n    <!-- DONE -->\n    <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n    <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n    <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n    <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "base/base.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title></title>\n    <link href=\"https://fonts.googleapis.com/css?family=Dosis|Raleway:400,700|Roboto:300,400,900,\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n    <link rel=\"stylesheet\" href=\"reset.css\">\n    <link rel=\"stylesheet\" href=\"mobileui.css\">\n    <link rel=\"stylesheet\" href=\"colors.css\">\n    <link rel=\"stylesheet\" href=\"icons.css\">\n    <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n    <style>\n      .content { margin-left:50px}\n    </style>\n  </head>\n  <body class=\"content\">\n    <!-- BEGIN -->\n    <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">Base</h2>\n    <p>\n      The base component contains the basic features to use MobileUI and any other component of this kit.\n      With this component, you can use the <a href=\"#colors\">color themes</a>, <a href=\"#icons\">icons</a> and some classes of positioning and alignment of elements in the interface.\n    </p>\n    <p>\n      To use it you need to install with the command:\n    </p>\n    <pre>mobileui install base</pre>\n    <!-- _DOC_GENERATE_CSS_DOC -->\n    <!-- DONE -->\n    <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n    <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n    <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n    <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "base/base.js",
    "content": "var userAgent = navigator.userAgent || navigator.vendor || window.opera;\nvar SO = {name:'unknown',code:0}\n\nif (/android/i.test(userAgent)) {\n    SO.name = \"Android\";\n    SO.class = 'platform-android';\n    SO.code = 1;\n}\n\nif (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {\n    SO.name = \"iOS\";\n    SO.class = 'platform-ios';\n    SO.code = 2;\n}\n\nif (/windows phone/i.test(userAgent)) {\n    SO.name = \"Windows Phone\";\n    SO.class = 'platform-wp';\n    SO.code = 3;\n}\n\nif(SO.class && document.getElementsByTagName('body').length){\n  document.getElementsByTagName('body')[0].className += ' '+SO.class\n}\n"
  },
  {
    "path": "base/card.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title></title>\n    <link href=\"https://fonts.googleapis.com/css?family=Dosis|Raleway:400,700|Roboto:300,400,900,\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n    <link rel=\"stylesheet\" href=\"reset.css\">\n    <link rel=\"stylesheet\" href=\"mobileui.css\">\n    <link rel=\"stylesheet\" href=\"colors.css\">\n    <link rel=\"stylesheet\" href=\"icons.css\">\n    <link rel=\"stylesheet\" href=\"../button/style.css\">\n    <link rel=\"stylesheet\" href=\"../list/style.css\">\n    <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n    <style>\n      .content { margin-left:50px}\n    </style>\n  </head>\n  <body class=\"content\">\n    <!-- BEGIN -->\n    <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">Card</h2>\n    <p>Card is a popular component in apps mobile. In MobileUI you can create a card using base classes.</p>\n    <p>\n      If you have installed any component, the base classes are already installed. Otherwise run the command:\n    </p>\n    <pre>mobileui install base</pre>\n<textarea class=\"bind-code\" mode=\"text/html\">\n<div class=\"padding border-grey-400 shadow radius\">\n  <p>\n  Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n  tempor incididunt ut labore et dolore magna aliqua.\n  </p>\n</div>\n<div class=\"space\"></div>\n<div class=\"padding border-purple shadow radius mark\">\n  <p>\n  Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n  tempor incididunt ut labore et dolore magna aliqua.\n  </p>\n</div></textarea>\n    <p>You can combinate card style and <a href=\"#list\">list</a> component, just add class <code>shadow</code>.</p>\n    <textarea class=\"bind-code\" mode=\"text/html\" replace=\"body,div\">\n    <body class=\"padding grey-100\">\n    <div class=\"padding border-grey-400 shadow radius white\">\n    <button class=\"small icon ion-grid white\"></button>\n    <button class=\"small icon ion-navicon-round white text-grey-400\"></button>\n    <button class=\"small icon ion-ios-location white text-grey-400\"></button>\n    <div class=\"right\">\n      <button class=\"small white text-grey-400\">Last updated</button>\n    </div>\n    </div>\n    <div class=\"space\"></div>\n    <div class=\"list shadow radius white\">\n    <div class=\"item\">\n      <div class=\"left\">\n        <img class=\"avatar circle\" src=\"../assets/img/80.jpg\">\n      </div>\n      <h2>Jeanette Fletcher</h2>\n      <p>jeanette.fletcher15@example.com</p>\n      <p class=\"text-grey-500 text-small\">\n        <i class=\"icon ion-ios-location\"></i> Brazil - Maringá-PR\n      </p>\n    </div>\n    <div class=\"item full\">\n      <img src=\"../assets/img/maringa.jpg\">\n    </div>\n    <div class=\"item text-grey-600\">\n      Catedral is a beautiful built in Maringá\n    </div>\n    </div>\n    </body></textarea>\n    <!-- DONE -->\n    <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n    <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n    <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n    <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "base/colors.css",
    "content": ".red {\r\n    color: rgba(255, 255, 255, .9);\r\n    background-color: #f44336 !important\r\n}\r\n\r\n.red-100,\r\n.red-200,\r\n.red-300,\r\n.red-50 {\r\n    color: rgba(0, 0, 0, .8)\r\n}\r\n\r\n.red-50, input[type=\"checkbox\"].red-50.switch::after {\r\n    background-color: #ffebee !important\r\n}\r\n\r\n.red-100, input[type=\"checkbox\"].red-100.switch::after {\r\n    background-color: #ffcdd2 !important\r\n}\r\n\r\n.red-200, input[type=\"checkbox\"].red-200.switch::after {\r\n    background-color: #ef9a9a !important\r\n}\r\n\r\n.red-300, input[type=\"checkbox\"].red-300.switch::after {\r\n    background-color: #e57373 !important\r\n}\r\n\r\n.pink,\r\n.red-400,\r\n.red-500,\r\n.red-600,\r\n.red-700,\r\n.red-800,\r\n.red-900 {\r\n    color: rgba(255, 255, 255, .9)\r\n}\r\n\r\n.red-400, input[type=\"checkbox\"].red-400.switch::after {\r\n    background-color: #ef5350 !important\r\n}\r\n\r\n.red-500, input[type=\"checkbox\"].red-500.switch::after {\r\n    background-color: #f44336 !important\r\n}\r\n\r\n.red-600, input[type=\"checkbox\"].red-600.switch::after {\r\n    background-color: #e53935 !important\r\n}\r\n\r\n.red-700, input[type=\"checkbox\"].red-700.switch::after {\r\n    background-color: #d32f2f !important\r\n}\r\n\r\n.red-800, input[type=\"checkbox\"].red-800.switch::after {\r\n    background-color: #c62828 !important\r\n}\r\n\r\n.red-900, input[type=\"checkbox\"].red-900.switch::after {\r\n    background-color: #b71c1c !important\r\n}\r\n\r\n.pink, input[type=\"checkbox\"].pink.switch::after {\r\n    background-color: #E91E63 !important\r\n}\r\n\r\n.pink-100,\r\n.pink-200,\r\n.pink-50 {\r\n    color: rgba(0, 0, 0, .8)\r\n}\r\n\r\n.pink-50, input[type=\"checkbox\"].pink-50.switch::after {\r\n    background-color: #fce4ec !important\r\n}\r\n\r\n.pink-100, input[type=\"checkbox\"].pink-100.switch::after {\r\n    background-color: #f8bbd0 !important\r\n}\r\n\r\n.pink-200, input[type=\"checkbox\"].pink-200.switch::after {\r\n    background-color: #f48fb1 !important\r\n}\r\n\r\n.Pink-300,\r\n.pink-400,\r\n.pink-500,\r\n.pink-600,\r\n.pink-700,\r\n.pink-800,\r\n.pink-900,\r\n.purple {\r\n    color: rgba(255, 255, 255, .9)\r\n}\r\n\r\n.Pink-300, input[type=\"checkbox\"].Pink-300.switch::after {\r\n    background-color: #f06292 !important\r\n}\r\n\r\n.pink-400, input[type=\"checkbox\"].pink-400.switch::after {\r\n    background-color: #ec407a !important\r\n}\r\n\r\n.pink-500, input[type=\"checkbox\"].pink-500.switch::after {\r\n    background-color: #e91e63 !important\r\n}\r\n\r\n.pink-600, input[type=\"checkbox\"].pink-600.switch::after {\r\n    background-color: #d81b60 !important\r\n}\r\n\r\n.pink-700, input[type=\"checkbox\"].pink-700.switch::after {\r\n    background-color: #c2185b !important\r\n}\r\n\r\n.pink-800, input[type=\"checkbox\"].pink-800.switch::after {\r\n    background-color: #ad1457 !important\r\n}\r\n\r\n.pink-900, input[type=\"checkbox\"].pink-900.switch::after {\r\n    background-color: #880e4f !important\r\n}\r\n\r\n.purple, input[type=\"checkbox\"].purple.switch::after {\r\n    background-color: #9c27b0 !important\r\n}\r\n\r\n.purple-100,\r\n.purple-200,\r\n.purple-50 {\r\n    color: rgba(0, 0, 0, .8)\r\n}\r\n\r\n.purple-50, input[type=\"checkbox\"].purple-50.switch::after {\r\n    background-color: #f3e5f5 !important\r\n}\r\n\r\n.purple-100, input[type=\"checkbox\"].purple-100.switch::after {\r\n    background-color: #e1bee7 !important\r\n}\r\n\r\n.purple-200, input[type=\"checkbox\"].purple-200.switch::after {\r\n    background-color: #ce93d8 !important\r\n}\r\n\r\n.purple-300,\r\n.purple-400,\r\n.deep-purple,\r\n.purple-500,\r\n.purple-600,\r\n.purple-700,\r\n.purple-800,\r\n.purple-900 {\r\n    color: rgba(255, 255, 255, .9)\r\n}\r\n\r\n.purple-300, input[type=\"checkbox\"].purple-300.switch::after {\r\n    background-color: #ba68c8 !important\r\n}\r\n\r\n.purple-400, input[type=\"checkbox\"].purple-400.switch::after {\r\n    background-color: #ab47bc !important\r\n}\r\n\r\n.purple-500, input[type=\"checkbox\"].purple-500.switch::after {\r\n    background-color: #9c27b0 !important\r\n}\r\n\r\n.purple-600, input[type=\"checkbox\"].purple-600.switch::after {\r\n    background-color: #8e24aa !important\r\n}\r\n\r\n.purple-700, input[type=\"checkbox\"].purple-700.switch::after {\r\n    background-color: #7b1fa2 !important\r\n}\r\n\r\n.purple-800, input[type=\"checkbox\"].purple-800.switch::after {\r\n    background-color: #6a1b9a !important\r\n}\r\n\r\n.purple-900, input[type=\"checkbox\"].purple-900.switch::after {\r\n    background-color: #4a148c !important\r\n}\r\n\r\n.deep-purple, input[type=\"checkbox\"].deep-purple.switch::after {\r\n    background-color: #673ab7 !important\r\n}\r\n\r\n.deep-purple-50 {\r\n    color: rgba(0, 0, 0, .8);\r\n    background-color: #ede7f6 !important\r\n}\r\n\r\n.deep-purple-100 {\r\n    color: rgba(0, 0, 0, .8);\r\n    background-color: #d1c4e9 !important\r\n}\r\n\r\n.deep-purple-200 {\r\n    color: rgba(0, 0, 0, .8);\r\n    background-color: #b39ddb !important\r\n}\r\n\r\n.deep-purple-300,\r\n.deep-purple-400,\r\n.deep-purple-500,\r\n.deep-purple-600,\r\n.deep-purple-700,\r\n.deep-purple-800,\r\n.deep-purple-900,\r\n.indigo {\r\n    color: rgba(255, 255, 255, .9)\r\n}\r\n\r\n.deep-purple-300, input[type=\"checkbox\"].deep-purple-300.switch::after {\r\n    background-color: #9575cd !important\r\n}\r\n\r\n.deep-purple-400, input[type=\"checkbox\"].deep-purple-400.switch::after {\r\n    background-color: #7e57c2 !important\r\n}\r\n\r\n.deep-purple-500, input[type=\"checkbox\"].deep-purple-500.switch::after {\r\n    background-color: #673ab7 !important\r\n}\r\n\r\n.deep-purple-600, input[type=\"checkbox\"].deep-purple-600.switch::after {\r\n    background-color: #5e35b1 !important\r\n}\r\n\r\n.deep-purple-700, input[type=\"checkbox\"].deep-purple-700.switch::after {\r\n    background-color: #512da8 !important\r\n}\r\n\r\n.deep-purple-800, input[type=\"checkbox\"].deep-purple-800.switch::after {\r\n    background-color: #4527a0 !important\r\n}\r\n\r\n.deep-purple-900, input[type=\"checkbox\"].deep-purple-900.switch::after {\r\n    background-color: #311b92 !important\r\n}\r\n\r\n.indigo, input[type=\"checkbox\"].indigo.switch::after {\r\n    background-color: #3f51b5 !important\r\n}\r\n\r\n.indigo-100,\r\n.indigo-200,\r\n.indigo-50 {\r\n    color: rgba(0, 0, 0, .8)\r\n}\r\n\r\n.indigo-50, input[type=\"checkbox\"].indigo-50.switch::after {\r\n    background-color: #e8eaf6 !important\r\n}\r\n\r\n.indigo-100, input[type=\"checkbox\"].indigo-100.switch::after {\r\n    background-color: #c5cae9 !important\r\n}\r\n\r\n.indigo-200, input[type=\"checkbox\"].indigo-200.switch::after {\r\n    background-color: #9fa8da !important\r\n}\r\n\r\n.blue,\r\n.indigo-300,\r\n.indigo-400,\r\n.indigo-500,\r\n.indigo-600,\r\n.indigo-700,\r\n.indigo-800,\r\n.indigo-900 {\r\n    color: rgba(255, 255, 255, .9)\r\n}\r\n\r\n.indigo-300, input[type=\"checkbox\"].indigo-300.switch::after {\r\n    background-color: #7986cb !important\r\n}\r\n\r\n.indigo-400, input[type=\"checkbox\"].indigo-400.switch::after {\r\n    background-color: #5c6bc0 !important\r\n}\r\n\r\n.indigo-500, input[type=\"checkbox\"].indigo-500.switch::after {\r\n    background-color: #3f51b5 !important\r\n}\r\n\r\n.indigo-600, input[type=\"checkbox\"].indigo-600.switch::after {\r\n    background-color: #3949ab !important\r\n}\r\n\r\n.indigo-700, input[type=\"checkbox\"].indigo-700.switch::after {\r\n    background-color: #303f9f !important\r\n}\r\n\r\n.indigo-800, input[type=\"checkbox\"].indigo-800.switch::after {\r\n    background-color: #283593 !important\r\n}\r\n\r\n.indigo-900, input[type=\"checkbox\"].indigo-900.switch::after {\r\n    background-color: #1a237e !important\r\n}\r\n\r\n.blue, input[type=\"checkbox\"].blue.switch::after {\r\n    background-color: #2196F3 !important\r\n}\r\n\r\n.blue-100,\r\n.blue-200,\r\n.blue-300,\r\n.blue-400,\r\n.blue-50 {\r\n    color: rgba(0, 0, 0, .8)\r\n}\r\n\r\n.blue-50, input[type=\"checkbox\"].blue-50.switch::after {\r\n    background-color: #e3f2fd !important\r\n}\r\n\r\n.blue-100, input[type=\"checkbox\"].blue-100.switch::after {\r\n    background-color: #bbdefb !important\r\n}\r\n\r\n.blue-200, input[type=\"checkbox\"].blue-200.switch::after {\r\n    background-color: #90caf9 !important\r\n}\r\n\r\n.blue-300, input[type=\"checkbox\"].blue-300.switch::after {\r\n    background-color: #64b5f6 !important\r\n}\r\n\r\n.blue-400, input[type=\"checkbox\"].blue-400.switch::after {\r\n    background-color: #42a5f5 !important\r\n}\r\n\r\n.blue-500,\r\n.blue-600,\r\n.blue-700,\r\n.blue-800,\r\n.blue-900,\r\n.light-blue {\r\n    color: rgba(255, 255, 255, .9)\r\n}\r\n\r\n.blue-500, input[type=\"checkbox\"].blue-500.switch::after {\r\n    background-color: #2196f3 !important\r\n}\r\n\r\n.blue-600, input[type=\"checkbox\"].blue-600.switch::after {\r\n    background-color: #1e88e5 !important\r\n}\r\n\r\n.blue-700, input[type=\"checkbox\"].blue-700.switch::after {\r\n    background-color: #1976d2 !important\r\n}\r\n\r\n.blue-800, input[type=\"checkbox\"].blue-800.switch::after {\r\n    background-color: #1565c0 !important\r\n}\r\n\r\n.blue-900, input[type=\"checkbox\"].blue-900.switch::after {\r\n    background-color: #0d47a1 !important\r\n}\r\n\r\n.light-blue, input[type=\"checkbox\"].light-blue.switch::after {\r\n    background-color: #03a9f4 !important\r\n}\r\n\r\n.light-blue-100,\r\n.light-blue-200,\r\n.light-blue-300,\r\n.light-blue-400,\r\n.light-blue-50,\r\n.light-blue-500 {\r\n    color: rgba(0, 0, 0, .8)\r\n}\r\n\r\n.light-blue-50, input[type=\"checkbox\"].light-blue-50.switch::after {\r\n    background-color: #e1f5fe !important\r\n}\r\n\r\n.light-blue-100, input[type=\"checkbox\"].light-blue-100.switch::after {\r\n    background-color: #b3e5fc !important\r\n}\r\n\r\n.light-blue-200, input[type=\"checkbox\"].light-blue-200.switch::after {\r\n    background-color: #81d4fa !important\r\n}\r\n\r\n.light-blue-300, input[type=\"checkbox\"].light-blue-300.switch::after {\r\n    background-color: #4fc3f7 !important\r\n}\r\n\r\n.light-blue-400, input[type=\"checkbox\"].light-blue-400.switch::after {\r\n    background-color: #29b6f6 !important\r\n}\r\n\r\n.light-blue-500, input[type=\"checkbox\"].light-blue-500.switch::after {\r\n    background-color: #03a9f4 !important\r\n}\r\n\r\n.cyan,\r\n.light-blue-600,\r\n.light-blue-700,\r\n.light-blue-800,\r\n.light-blue-900 {\r\n    color: rgba(255, 255, 255, .9)\r\n}\r\n\r\n.light-blue-600, input[type=\"checkbox\"].light-blue-600.switch::after {\r\n    background-color: #039be5 !important\r\n}\r\n\r\n.light-blue-700, input[type=\"checkbox\"].light-blue-700.switch::after {\r\n    background-color: #0288d1 !important\r\n}\r\n\r\n.light-blue-800, input[type=\"checkbox\"].light-blue-800.switch::after {\r\n    background-color: #0277bd !important\r\n}\r\n\r\n.light-blue-900, input[type=\"checkbox\"].light-blue-900.switch::after {\r\n    background-color: #01579b !important\r\n}\r\n\r\n.cyan, input[type=\"checkbox\"].cyan.switch::after {\r\n    background-color: #00bcd4 !important\r\n}\r\n\r\n.cyan-100,\r\n.cyan-200,\r\n.cyan-300,\r\n.cyan-400,\r\n.cyan-50,\r\n.cyan-500,\r\n.cyan-600 {\r\n    color: rgba(0, 0, 0, .8)\r\n}\r\n\r\n.cyan-50, input[type=\"checkbox\"].cyan-50.switch::after {\r\n    background-color: #e0f7fa !important\r\n}\r\n\r\n.cyan-100, input[type=\"checkbox\"].cyan-100.switch::after {\r\n    background-color: #b2ebf2 !important\r\n}\r\n\r\n.cyan-200, input[type=\"checkbox\"].cyan-200.switch::after {\r\n    background-color: #80deea !important\r\n}\r\n\r\n.cyan-300, input[type=\"checkbox\"].cyan-300.switch::after {\r\n    background-color: #4dd0e1 !important\r\n}\r\n\r\n.cyan-400, input[type=\"checkbox\"].cyan-400.switch::after {\r\n    background-color: #26c6da !important\r\n}\r\n\r\n.cyan-500, input[type=\"checkbox\"].cyan-500.switch::after {\r\n    background-color: #00bcd4 !important\r\n}\r\n\r\n.cyan-600, input[type=\"checkbox\"].cyan-600.switch::after {\r\n    background-color: #00acc1 !important\r\n}\r\n\r\n.cyan-700,\r\n.cyan-800,\r\n.cyan-900,\r\n.teal {\r\n    color: rgba(255, 255, 255, .9)\r\n}\r\n\r\n.cyan-700, input[type=\"checkbox\"].cyan-700.switch::after {\r\n    background-color: #0097a7 !important\r\n}\r\n\r\n.cyan-800, input[type=\"checkbox\"].cyan-800.switch::after {\r\n    background-color: #00838f !important\r\n}\r\n\r\n.cyan-900, input[type=\"checkbox\"].cyan-900.switch::after {\r\n    background-color: #006064 !important\r\n}\r\n\r\n.teal, input[type=\"checkbox\"].teal.switch::after {\r\n    background-color: #009688 !important\r\n}\r\n\r\n.teal-100,\r\n.teal-200,\r\n.teal-300,\r\n.teal-400,\r\n.teal-50 {\r\n    color: rgba(0, 0, 0, .8)\r\n}\r\n\r\n.teal-50, input[type=\"checkbox\"].teal-50.switch::after {\r\n    background-color: #e0f2f1 !important\r\n}\r\n\r\n.teal-100, input[type=\"checkbox\"].teal-100.switch::after {\r\n    background-color: #b2dfdb !important\r\n}\r\n\r\n.teal-200, input[type=\"checkbox\"].teal-200.switch::after {\r\n    background-color: #80cbc4 !important\r\n}\r\n\r\n.teal-300, input[type=\"checkbox\"].teal-300.switch::after {\r\n    background-color: #4db6ac !important\r\n}\r\n\r\n.teal-400, input[type=\"checkbox\"].teal-400.switch::after {\r\n    background-color: #26a69a !important\r\n}\r\n\r\n.green,\r\n.teal-500,\r\n.teal-600,\r\n.teal-700,\r\n.teal-800,\r\n.teal-900 {\r\n    color: rgba(255, 255, 255, .9)\r\n}\r\n\r\n.teal-500, input[type=\"checkbox\"].teal-500.switch::after {\r\n    background-color: #009688 !important\r\n}\r\n\r\n.teal-600, input[type=\"checkbox\"].teal-600.switch::after {\r\n    background-color: #00897b !important\r\n}\r\n\r\n.teal-700, input[type=\"checkbox\"].teal-700.switch::after {\r\n    background-color: #00796b !important\r\n}\r\n\r\n.teal-800, input[type=\"checkbox\"].teal-800.switch::after {\r\n    background-color: #00695c !important\r\n}\r\n\r\n.teal-900, input[type=\"checkbox\"].teal-900.switch::after {\r\n    background-color: #004d40 !important\r\n}\r\n\r\n.green, input[type=\"checkbox\"].green.switch::after {\r\n    background-color: #4caf50 !important\r\n}\r\n\r\n.green-100,\r\n.green-200,\r\n.green-300,\r\n.green-400,\r\n.green-50,\r\n.green-500 {\r\n    color: rgba(0, 0, 0, .8)\r\n}\r\n\r\n.green-50, input[type=\"checkbox\"].green-50.switch::after {\r\n    background-color: #e8f5e9 !important\r\n}\r\n\r\n.green-100, input[type=\"checkbox\"].green-100.switch::after {\r\n    background-color: #c8e6c9 !important\r\n}\r\n\r\n.green-200, input[type=\"checkbox\"].green-200.switch::after {\r\n    background-color: #a5d6a7 !important\r\n}\r\n\r\n.green-300, input[type=\"checkbox\"].green-300.switch::after {\r\n    background-color: #81c784 !important\r\n}\r\n\r\n.green-400, input[type=\"checkbox\"].green-400.switch::after {\r\n    background-color: #66bb6a !important\r\n}\r\n\r\n.green-500, input[type=\"checkbox\"].green-500.switch::after {\r\n    background-color: #4caf50 !important\r\n}\r\n\r\n.green-600,\r\n.green-700,\r\n.green-800,\r\n.green-900,\r\n.light-green {\r\n    color: rgba(255, 255, 255, .9)\r\n}\r\n\r\n.green-600, input[type=\"checkbox\"].green-600.switch::after {\r\n    background-color: #43a047 !important\r\n}\r\n\r\n.green-700, input[type=\"checkbox\"].green-700.switch::after {\r\n    background-color: #388e3c !important\r\n}\r\n\r\n.green-800, input[type=\"checkbox\"].green-800.switch::after {\r\n    background-color: #2e7d32 !important\r\n}\r\n\r\n.green-900, input[type=\"checkbox\"].green-900.switch::after {\r\n    background-color: #1b5e20 !important\r\n}\r\n\r\n.light-green, input[type=\"checkbox\"].light-green.switch::after {\r\n    background-color: #8bc34a !important\r\n}\r\n\r\n.light-green-100,\r\n.light-green-200,\r\n.light-green-300,\r\n.light-green-400,\r\n.light-green-50,\r\n.light-green-500,\r\n.light-green-600 {\r\n    color: rgba(0, 0, 0, .8)\r\n}\r\n\r\n.light-green-50, input[type=\"checkbox\"].light-green-50.switch::after {\r\n    background-color: #f1f8e9 !important\r\n}\r\n\r\n.light-green-100, input[type=\"checkbox\"].light-green-100.switch::after {\r\n    background-color: #dcedc8 !important\r\n}\r\n\r\n.light-green-200, input[type=\"checkbox\"].light-green-200.switch::after {\r\n    background-color: #c5e1a5 !important\r\n}\r\n\r\n.light-green-300, input[type=\"checkbox\"].light-green-300.switch::after {\r\n    background-color: #aed581 !important\r\n}\r\n\r\n.light-green-400, input[type=\"checkbox\"].light-green-400.switch::after {\r\n    background-color: #9ccc65 !important\r\n}\r\n\r\n.light-green-500, input[type=\"checkbox\"].light-green-500.switch::after {\r\n    background-color: #8bc34a !important\r\n}\r\n\r\n.light-green-600, input[type=\"checkbox\"].light-green-600.switch::after {\r\n    background-color: #7cb342 !important\r\n}\r\n\r\n.light-green-700,\r\n.light-green-800,\r\n.light-green-900,\r\n.lime {\r\n    color: rgba(255, 255, 255, .9)\r\n}\r\n\r\n.light-green-700, input[type=\"checkbox\"].light-green-700.switch::after {\r\n    background-color: #689f38 !important\r\n}\r\n\r\n.light-green-800, input[type=\"checkbox\"].light-green-800.switch::after {\r\n    background-color: #558b2f !important\r\n}\r\n\r\n.light-green-900, input[type=\"checkbox\"].light-green-900.switch::after {\r\n    background-color: #33691e !important\r\n}\r\n\r\n.lime, input[type=\"checkbox\"].lime.switch::after {\r\n    background-color: #cddc39 !important\r\n}\r\n\r\n.lime-100,\r\n.lime-200,\r\n.lime-300,\r\n.lime-400,\r\n.lime-50,\r\n.lime-500,\r\n.lime-600,\r\n.lime-700,\r\n.lime-800 {\r\n    color: rgba(0, 0, 0, .8)\r\n}\r\n\r\n.lime-50, input[type=\"checkbox\"].lime-50.switch::after {\r\n    background-color: #f9fbe7 !important\r\n}\r\n\r\n.lime-100, input[type=\"checkbox\"].lime-100.switch::after {\r\n    background-color: #f0f4c3 !important\r\n}\r\n\r\n.lime-200, input[type=\"checkbox\"].lime-200.switch::after {\r\n    background-color: #e6ee9c !important\r\n}\r\n\r\n.lime-300, input[type=\"checkbox\"].lime-300.switch::after {\r\n    background-color: #dce775 !important\r\n}\r\n\r\n.lime-400, input[type=\"checkbox\"].lime-400.switch::after {\r\n    background-color: #d4e157 !important\r\n}\r\n\r\n.lime-500, input[type=\"checkbox\"].lime-500.switch::after {\r\n    background-color: #cddc39 !important\r\n}\r\n\r\n.lime-600, input[type=\"checkbox\"].lime-600.switch::after {\r\n    background-color: #c0ca33 !important\r\n}\r\n\r\n.lime-700, input[type=\"checkbox\"].lime-700.switch::after {\r\n    background-color: #afb42b !important\r\n}\r\n\r\n.lime-800, input[type=\"checkbox\"].lime-800.switch::after {\r\n    background-color: #9e9d24 !important\r\n}\r\n\r\n.lime-900,\r\n.yellow {\r\n    color: rgba(255, 255, 255, .9)\r\n}\r\n\r\n.lime-900, input[type=\"checkbox\"].lime-900.switch::after {\r\n    background-color: #827717 !important\r\n}\r\n\r\n.yellow, input[type=\"checkbox\"].yellow.switch::after {\r\n    background-color: #ffeb3b !important\r\n}\r\n\r\n.yellow-100,\r\n.yellow-200,\r\n.yellow-300,\r\n.yellow-50,\r\n.yellow-500,\r\n.yellow-600,\r\n.yellow-700,\r\n.yellow-800,\r\n.yellow-900 {\r\n    color: rgba(0, 0, 0, .8)\r\n}\r\n\r\n.yellow-50, input[type=\"checkbox\"].yellow-50.switch::after {\r\n    background-color: #fffde7 !important\r\n}\r\n\r\n.yellow-100, input[type=\"checkbox\"].yellow-100.switch::after {\r\n    background-color: #fff9c4 !important\r\n}\r\n\r\n.yellow-200, input[type=\"checkbox\"].yellow-200.switch::after {\r\n    background-color: #fff59d !important\r\n}\r\n\r\n.yellow-300, input[type=\"checkbox\"].yellow-300.switch::after {\r\n    background-color: #fff176 !important\r\n}\r\n\r\n.yellow-400 {\r\n    color: rgba(0, 0, 0, .8);\r\n    background-color: #ffee58 !important\r\n}\r\n\r\n.yellow-500, input[type=\"checkbox\"].yellow-500.switch::after {\r\n    background-color: #ffeb3b !important\r\n}\r\n\r\n.yellow-600, input[type=\"checkbox\"].yellow-600.switch::after {\r\n    background-color: #fdd835 !important\r\n}\r\n\r\n.yellow-700, input[type=\"checkbox\"].yellow-700.switch::after {\r\n    background-color: #fbc02d !important\r\n}\r\n\r\n.yellow-800, input[type=\"checkbox\"].yellow-800.switch::after {\r\n    background-color: #f9a825 !important\r\n}\r\n\r\n.yellow-900, input[type=\"checkbox\"].yellow-900.switch::after {\r\n    background-color: #f57f17 !important\r\n}\r\n\r\n.amber {\r\n    color: rgba(255, 255, 255, .9);\r\n    background-color: #ffc107 !important\r\n}\r\n\r\n.amber-100,\r\n.amber-200,\r\n.amber-300,\r\n.amber-50,\r\n.amber-500,\r\n.amber-600,\r\n.amber-700,\r\n.amber-800,\r\n.amber-900 {\r\n    color: rgba(0, 0, 0, .8)\r\n}\r\n\r\n.amber-50, input[type=\"checkbox\"].amber-50.switch::after {\r\n    background-color: #fff8e1 !important\r\n}\r\n\r\n.amber-100, input[type=\"checkbox\"].amber-100.switch::after {\r\n    background-color: #ffecb3 !important\r\n}\r\n\r\n.amber-200, input[type=\"checkbox\"].amber-200.switch::after {\r\n    background-color: #ffe082 !important\r\n}\r\n\r\n.amber-300, input[type=\"checkbox\"].amber-300.switch::after {\r\n    background-color: #ffd54f !important\r\n}\r\n\r\n.amber-400 {\r\n    color: rgba(0, 0, 0, .8);\r\n    background-color: #ffca28 !important\r\n}\r\n\r\n.amber-500, input[type=\"checkbox\"].amber-500.switch::after {\r\n    background-color: #ffc107 !important\r\n}\r\n\r\n.amber-600, input[type=\"checkbox\"].amber-600.switch::after {\r\n    background-color: #ffb300 !important\r\n}\r\n\r\n.amber-700, input[type=\"checkbox\"].amber-700.switch::after {\r\n    background-color: #ffa000 !important\r\n}\r\n\r\n.amber-800, input[type=\"checkbox\"].amber-800.switch::after {\r\n    background-color: #ff8f00 !important\r\n}\r\n\r\n.amber-900, input[type=\"checkbox\"].amber-900.switch::after {\r\n    background-color: #ff6f00 !important\r\n}\r\n\r\n.orange {\r\n    color: rgba(255, 255, 255, .9);\r\n    background-color: #ff9800 !important\r\n}\r\n\r\n.orange-100,\r\n.orange-200,\r\n.orange-300,\r\n.orange-400,\r\n.orange-50,\r\n.orange-500,\r\n.orange-600,\r\n.orange-700 {\r\n    color: rgba(0, 0, 0, .8)\r\n}\r\n\r\n.orange-50, input[type=\"checkbox\"].orange-50.switch::after {\r\n    background-color: #fff3e0 !important\r\n}\r\n\r\n.orange-100, input[type=\"checkbox\"].orange-100.switch::after {\r\n    background-color: #ffe0b2 !important\r\n}\r\n\r\n.orange-200, input[type=\"checkbox\"].orange-200.switch::after {\r\n    background-color: #ffcc80 !important\r\n}\r\n\r\n.orange-300, input[type=\"checkbox\"].orange-300.switch::after {\r\n    background-color: #ffb74d !important\r\n}\r\n\r\n.orange-400, input[type=\"checkbox\"].orange-400.switch::after {\r\n    background-color: #ffa726 !important\r\n}\r\n\r\n.orange-500, input[type=\"checkbox\"].orange-500.switch::after {\r\n    background-color: #ff9800 !important\r\n}\r\n\r\n.orange-600, input[type=\"checkbox\"].orange-600.switch::after {\r\n    background-color: #fb8c00 !important\r\n}\r\n\r\n.orange-700, input[type=\"checkbox\"].orange-700.switch::after {\r\n    background-color: #f57c00 !important\r\n}\r\n\r\n.deep-orange,\r\n.orange-800,\r\n.orange-900 {\r\n    color: rgba(255, 255, 255, .9)\r\n}\r\n\r\n.orange-800, input[type=\"checkbox\"].orange-800.switch::after {\r\n    background-color: #ef6c00 !important\r\n}\r\n\r\n.orange-900, input[type=\"checkbox\"].orange-900.switch::after {\r\n    background-color: #e65100 !important\r\n}\r\n\r\n.deep-orange, input[type=\"checkbox\"].deep-orange.switch::after {\r\n    background-color: #ff5722 !important\r\n}\r\n\r\n.deep-orange-100,\r\n.deep-orange-200,\r\n.deep-orange-300,\r\n.deep-orange-400,\r\n.deep-orange-50 {\r\n    color: rgba(0, 0, 0, .8)\r\n}\r\n\r\n.deep-orange-50, input[type=\"checkbox\"].deep-orange-50.switch::after {\r\n    background-color: #fbe9e7 !important\r\n}\r\n\r\n.deep-orange-100, input[type=\"checkbox\"].deep-orange-100.switch::after {\r\n    background-color: #ffccbc !important\r\n}\r\n\r\n.deep-orange-200, input[type=\"checkbox\"].deep-orange-200.switch::after {\r\n    background-color: #ffab91 !important\r\n}\r\n\r\n.deep-orange-300, input[type=\"checkbox\"].deep-orange-300.switch::after {\r\n    background-color: #ff8a65 !important\r\n}\r\n\r\n.deep-orange-400, input[type=\"checkbox\"].deep-orange-400.switch::after {\r\n    background-color: #ff7043 !important\r\n}\r\n\r\n.brown,\r\n.deep-orange-500,\r\n.deep-orange-600,\r\n.deep-orange-700,\r\n.deep-orange-800,\r\n.deep-orange-900 {\r\n    color: rgba(255, 255, 255, .9)\r\n}\r\n\r\n.deep-orange-500, input[type=\"checkbox\"].deep-orange-500.switch::after {\r\n    background-color: #ff5722 !important\r\n}\r\n\r\n.deep-orange-600, input[type=\"checkbox\"].deep-orange-600.switch::after {\r\n    background-color: #f4511e !important\r\n}\r\n\r\n.deep-orange-700, input[type=\"checkbox\"].deep-orange-700.switch::after {\r\n    background-color: #e64a19 !important\r\n}\r\n\r\n.deep-orange-800, input[type=\"checkbox\"].deep-orange-800.switch::after {\r\n    background-color: #d84315 !important\r\n}\r\n\r\n.deep-orange-900, input[type=\"checkbox\"].deep-orange-900.switch::after {\r\n    background-color: #bf360c !important\r\n}\r\n\r\n.brown, input[type=\"checkbox\"].brown.switch::after {\r\n    background-color: #795548 !important\r\n}\r\n\r\n.brown-100,\r\n.brown-200,\r\n.brown-50 {\r\n    color: rgba(0, 0, 0, .8)\r\n}\r\n\r\n.brown-50, input[type=\"checkbox\"].brown-50.switch::after {\r\n    background-color: #efebe9 !important\r\n}\r\n\r\n.brown-100, input[type=\"checkbox\"].brown-100.switch::after {\r\n    background-color: #d7ccc8 !important\r\n}\r\n\r\n.brown-200, input[type=\"checkbox\"].brown-200.switch::after {\r\n    background-color: #bcaaa4 !important\r\n}\r\n\r\n.brown-300,\r\n.brown-400,\r\n.brown-500,\r\n.brown-600,\r\n.brown-700,\r\n.brown-800,\r\n.brown-900,\r\n.grey {\r\n    color: rgba(255, 255, 255, .9)\r\n}\r\n\r\n.brown-300, input[type=\"checkbox\"].brown-300.switch::after {\r\n    background-color: #a1887f !important\r\n}\r\n\r\n.brown-400, input[type=\"checkbox\"].brown-400.switch::after {\r\n    background-color: #8d6e63 !important\r\n}\r\n\r\n.brown-500, input[type=\"checkbox\"].brown-500.switch::after {\r\n    background-color: #795548 !important\r\n}\r\n\r\n.brown-600, input[type=\"checkbox\"].brown-600.switch::after {\r\n    background-color: #6d4c41 !important\r\n}\r\n\r\n.brown-700, input[type=\"checkbox\"].brown-700.switch::after {\r\n    background-color: #5d4037 !important\r\n}\r\n\r\n.brown-800, input[type=\"checkbox\"].brown-800.switch::after {\r\n    background-color: #4e342e !important\r\n}\r\n\r\n.brown-900, input[type=\"checkbox\"].brown-900.switch::after {\r\n    background-color: #3e2723 !important\r\n}\r\n\r\n.grey, input[type=\"checkbox\"].grey.switch::after {\r\n    background-color: #9e9e9e !important\r\n}\r\n\r\n.grey-100,\r\n.grey-200,\r\n.grey-300,\r\n.grey-400,\r\n.grey-50,\r\n.grey-500 {\r\n    color: rgba(0, 0, 0, .8)\r\n}\r\n\r\n.grey-50, input[type=\"checkbox\"].grey-50.switch::after {\r\n    background-color: #fafafa !important\r\n}\r\n\r\n.grey-100, input[type=\"checkbox\"].grey-100.switch::after {\r\n    background-color: #f5f5f5 !important\r\n}\r\n\r\n.grey-200, input[type=\"checkbox\"].grey-200.switch::after {\r\n    background-color: #eee !important\r\n}\r\n\r\n.grey-300, input[type=\"checkbox\"].grey-300.switch::after {\r\n    background-color: #e0e0e0 !important\r\n}\r\n\r\n.grey-400, input[type=\"checkbox\"].grey-400.switch::after {\r\n    background-color: #bdbdbd !important\r\n}\r\n\r\n.grey-500, input[type=\"checkbox\"].grey-500.switch::after {\r\n    background-color: #9e9e9e !important\r\n}\r\n\r\n.blue-grey,\r\n.grey-600,\r\n.grey-700,\r\n.grey-800,\r\n.grey-900 {\r\n    color: rgba(255, 255, 255, .9)\r\n}\r\n\r\n.grey-600, input[type=\"checkbox\"].grey-600.switch::after {\r\n    background-color: #757575 !important\r\n}\r\n\r\n.grey-700, input[type=\"checkbox\"].grey-700.switch::after {\r\n    background-color: #616161 !important\r\n}\r\n\r\n.grey-800, input[type=\"checkbox\"].grey-800.switch::after {\r\n    background-color: #424242 !important\r\n}\r\n\r\n.grey-900, input[type=\"checkbox\"].grey-900.switch::after {\r\n    background-color: #212121 !important\r\n}\r\n\r\n.blue-grey, input[type=\"checkbox\"].blue-grey.switch::after {\r\n    background-color: #607d8b !important\r\n}\r\n\r\n.blue-grey-100,\r\n.blue-grey-200,\r\n.blue-grey-300,\r\n.blue-grey-50 {\r\n    color: rgba(0, 0, 0, .8)\r\n}\r\n\r\n.blue-grey-50, input[type=\"checkbox\"].blue-grey-50.switch::after {\r\n    background-color: #eceff1 !important\r\n}\r\n\r\n.blue-grey-100, input[type=\"checkbox\"].blue-grey-100.switch::after {\r\n    background-color: #cfd8dc !important\r\n}\r\n\r\n.blue-grey-200, input[type=\"checkbox\"].blue-grey-200.switch::after {\r\n    background-color: #b0bec5 !important\r\n}\r\n\r\n.blue-grey-300, input[type=\"checkbox\"].blue-grey-300.switch::after {\r\n    background-color: #90a4ae !important\r\n}\r\n\r\n.black,\r\n.blue-grey-400,\r\n.blue-grey-500,\r\n.blue-grey-600,\r\n.blue-grey-700,\r\n.blue-grey-800,\r\n.blue-grey-900 {\r\n    color: rgba(255, 255, 255, .9)\r\n}\r\n\r\n.blue-grey-400, input[type=\"checkbox\"].blue-grey-400.switch::after {\r\n    background-color: #78909c !important\r\n}\r\n.transparent {\r\n  background-color: rgba(0, 0, 0, 0) !important;\r\n}\r\n\r\n.blue-grey-500, input[type=\"checkbox\"].blue-grey-500.switch::after {\r\n    background-color: #607d8b !important\r\n}\r\n\r\n.blue-grey-600, input[type=\"checkbox\"].blue-grey-600.switch::after {\r\n    background-color: #546e7a !important\r\n}\r\n\r\n.blue-grey-700, input[type=\"checkbox\"].blue-grey-700.switch::after {\r\n    background-color: #455a64 !important\r\n}\r\n\r\n.blue-grey-800, input[type=\"checkbox\"].blue-grey-800.switch::after {\r\n    background-color: #37474f !important\r\n}\r\n\r\n.blue-grey-900, input[type=\"checkbox\"].blue-grey-900.switch::after {\r\n    background-color: #263238 !important\r\n}\r\n\r\n.black, input[type=\"checkbox\"].black.switch::after {\r\n    background-color: #000 !important\r\n}\r\n.black-opacity-90 {\r\n  background-color: rgba(0, 0, 0, 0.9);\r\n}\r\n.black-opacity-70 {\r\n  background-color: rgba(0, 0, 0, 0.7);\r\n}\r\n.black-opacity-50 {\r\n  background-color: rgba(0, 0, 0, 0.5);\r\n}\r\n.black-opacity-30 {\r\n  background-color: rgba(0, 0, 0, 0.3);\r\n}\r\n.black-opacity-10 {\r\n  background-color: rgba(0, 0, 0, 0.1);\r\n}\r\n\r\n.white {\r\n    color: rgba(0, 0, 0, .8);\r\n    background-color: #fff !important\r\n}\r\n.white-opacity-90 {\r\n  background-color: rgba(255, 255, 255, 0.9);\r\n}\r\n.white-opacity-70 {\r\n  background-color: rgba(255, 255, 255, 0.7);\r\n}\r\n.white-opacity-50 {\r\n  background-color: rgba(255, 255, 255, 0.5);\r\n}\r\n.white-opacity-30 {\r\n  background-color: rgba(255, 255, 255, 0.3);\r\n}\r\n.white-opacity-10 {\r\n  background-color: rgba(255, 255, 255, 0.1);\r\n}\r\n.text-red , i.red {\r\n    color: #f44336;\r\n}\r\n\r\n.text-red-50 , i.red-50 {\r\n    color: #ffebee;\r\n}\r\n\r\n.text-red-100 , i.red-100 {\r\n    color: #ffcdd2;\r\n}\r\n\r\n.text-red-200 , i.red-200 {\r\n    color: #ef9a9a;\r\n}\r\n\r\n.text-red-300 , i.red-300 {\r\n    color: #e57373;\r\n}\r\n\r\n.text-red-400 , i.red-400 {\r\n    color: #ef5350;\r\n}\r\n\r\n.text-red-500 , i.red-500 {\r\n    color: #f44336;\r\n}\r\n\r\n.text-red-600 , i.red-600 {\r\n    color: #e53935;\r\n}\r\n\r\n.text-red-700 , i.red-700 {\r\n    color: #d32f2f;\r\n}\r\n\r\n.text-red-800 , i.red-800 {\r\n    color: #c62828;\r\n}\r\n\r\n.text-red-900 , i.red-900 {\r\n    color: #b71c1c;\r\n}\r\n\r\n.text-pink , i.pink {\r\n    color: #E91E63;\r\n}\r\n\r\n.text-pink-50 , i.pink-50 {\r\n    color: #fce4ec;\r\n}\r\n\r\n.text-pink-100 , i.pink-100 {\r\n    color: #f8bbd0;\r\n}\r\n\r\n.text-pink-200 , i.pink-200 {\r\n    color: #f48fb1;\r\n}\r\n\r\n.text-Pink-300 , i.Pink-300 {\r\n    color: #f06292;\r\n}\r\n\r\n.text-pink-400 , i.pink-400 {\r\n    color: #ec407a;\r\n}\r\n\r\n.text-pink-500 , i.pink-500 {\r\n    color: #e91e63;\r\n}\r\n\r\n.text-pink-600 , i.pink-600 {\r\n    color: #d81b60;\r\n}\r\n\r\n.text-pink-700 , i.pink-700 {\r\n    color: #c2185b;\r\n}\r\n\r\n.text-pink-800 , i.pink-800 {\r\n    color: #ad1457;\r\n}\r\n\r\n.text-pink-900 , i.pink-900 {\r\n    color: #880e4f;\r\n}\r\n\r\n.text-purple , i.purple {\r\n    color: #9c27b0;\r\n}\r\n\r\n.text-purple-50 , i.purple-50 {\r\n    color: #f3e5f5;\r\n}\r\n\r\n.text-purple-100 , i.purple-100 {\r\n    color: #e1bee7;\r\n}\r\n\r\n.text-purple-200 , i.purple-200 {\r\n    color: #ce93d8;\r\n}\r\n\r\n.text-purple-300 , i.purple-300 {\r\n    color: #ba68c8;\r\n}\r\n\r\n.text-purple-400 , i.purple-400 {\r\n    color: #ab47bc;\r\n}\r\n\r\n.text-purple-500 , i.purple-500 {\r\n    color: #9c27b0;\r\n}\r\n\r\n.text-purple-600 , i.purple-600 {\r\n    color: #8e24aa;\r\n}\r\n\r\n.text-purple-700 , i.purple-700 {\r\n    color: #7b1fa2;\r\n}\r\n\r\n.text-purple-800 , i.purple-800 {\r\n    color: #6a1b9a;\r\n}\r\n\r\n.text-purple-900 , i.purple-900 {\r\n    color: #4a148c;\r\n}\r\n\r\n.text-deep-purple , i.deep-purple {\r\n    color: #673ab7;\r\n}\r\n\r\n.text-deep-purple-50 , i.deep-purple-50 {\r\n    color: #ede7f6;\r\n}\r\n\r\n.text-deep-purple-100 , i.deep-purple-100 {\r\n    color: #d1c4e9;\r\n}\r\n\r\n.text-deep-purple-200 , i.deep-purple-200 {\r\n    color: #b39ddb;\r\n}\r\n\r\n.text-deep-purple-300 , i.deep-purple-300 {\r\n    color: #9575cd;\r\n}\r\n\r\n.text-deep-purple-400 , i.deep-purple-400 {\r\n    color: #7e57c2;\r\n}\r\n\r\n.text-deep-purple-500 , i.deep-purple-500 {\r\n    color: #673ab7;\r\n}\r\n\r\n.text-deep-purple-600 , i.deep-purple-600 {\r\n    color: #5e35b1;\r\n}\r\n\r\n.text-deep-purple-700 , i.deep-purple-700 {\r\n    color: #512da8;\r\n}\r\n\r\n.text-deep-purple-800 , i.deep-purple-800 {\r\n    color: #4527a0;\r\n}\r\n\r\n.text-deep-purple-900 , i.deep-purple-900 {\r\n    color: #311b92;\r\n}\r\n\r\n.text-indigo , i.indigo {\r\n    color: #3f51b5;\r\n}\r\n\r\n.text-indigo-50 , i.indigo-50 {\r\n    color: #e8eaf6;\r\n}\r\n\r\n.text-indigo-100 , i.indigo-100 {\r\n    color: #c5cae9;\r\n}\r\n\r\n.text-indigo-200 , i.indigo-200 {\r\n    color: #9fa8da;\r\n}\r\n\r\n.text-indigo-300 , i.indigo-300 {\r\n    color: #7986cb;\r\n}\r\n\r\n.text-indigo-400 , i.indigo-400 {\r\n    color: #5c6bc0;\r\n}\r\n\r\n.text-indigo-500 , i.indigo-500 {\r\n    color: #3f51b5;\r\n}\r\n\r\n.text-indigo-600 , i.indigo-600 {\r\n    color: #3949ab;\r\n}\r\n\r\n.text-indigo-700 , i.indigo-700 {\r\n    color: #303f9f;\r\n}\r\n\r\n.text-indigo-800 , i.indigo-800 {\r\n    color: #283593;\r\n}\r\n\r\n.text-indigo-900 , i.indigo-900 {\r\n    color: #1a237e;\r\n}\r\n\r\n.text-blue , i.blue {\r\n    color: #2196F3;\r\n}\r\n\r\n.text-blue-50 , i.blue-50 {\r\n    color: #e3f2fd;\r\n}\r\n\r\n.text-blue-100 , i.blue-100 {\r\n    color: #bbdefb;\r\n}\r\n\r\n.text-blue-200 , i.blue-200 {\r\n    color: #90caf9;\r\n}\r\n\r\n.text-blue-300 , i.blue-300 {\r\n    color: #64b5f6;\r\n}\r\n\r\n.text-blue-400 , i.blue-400 {\r\n    color: #42a5f5;\r\n}\r\n\r\n.text-blue-500 , i.blue-500 {\r\n    color: #2196f3;\r\n}\r\n\r\n.text-blue-600 , i.blue-600 {\r\n    color: #1e88e5;\r\n}\r\n\r\n.text-blue-700 , i.blue-700 {\r\n    color: #1976d2;\r\n}\r\n\r\n.text-blue-800 , i.blue-800 {\r\n    color: #1565c0;\r\n}\r\n\r\n.text-blue-900 , i.blue-900 {\r\n    color: #0d47a1;\r\n}\r\n\r\n.text-light-blue , i.light-blue {\r\n    color: #03a9f4;\r\n}\r\n\r\n.text-light-blue-50 , i.light-blue-50 {\r\n    color: #e1f5fe;\r\n}\r\n\r\n.text-light-blue-100 , i.light-blue-100 {\r\n    color: #b3e5fc;\r\n}\r\n\r\n.text-light-blue-200 , i.light-blue-200 {\r\n    color: #81d4fa;\r\n}\r\n\r\n.text-light-blue-300 , i.light-blue-300 {\r\n    color: #4fc3f7;\r\n}\r\n\r\n.text-light-blue-400 , i.light-blue-400 {\r\n    color: #29b6f6;\r\n}\r\n\r\n.text-light-blue-500 , i.light-blue-500 {\r\n    color: #03a9f4;\r\n}\r\n\r\n.text-light-blue-600 , i.light-blue-600 {\r\n    color: #039be5;\r\n}\r\n\r\n.text-light-blue-700 , i.light-blue-700 {\r\n    color: #0288d1;\r\n}\r\n\r\n.text-light-blue-800 , i.light-blue-800 {\r\n    color: #0277bd;\r\n}\r\n\r\n.text-light-blue-900 , i.light-blue-900 {\r\n    color: #01579b;\r\n}\r\n\r\n.text-cyan , i.cyan {\r\n    color: #00bcd4;\r\n}\r\n\r\n.text-cyan-50 , i.cyan-50 {\r\n    color: #e0f7fa;\r\n}\r\n\r\n.text-cyan-100 , i.cyan-100 {\r\n    color: #b2ebf2;\r\n}\r\n\r\n.text-cyan-200 , i.cyan-200 {\r\n    color: #80deea;\r\n}\r\n\r\n.text-cyan-300 , i.cyan-300 {\r\n    color: #4dd0e1;\r\n}\r\n\r\n.text-cyan-400 , i.cyan-400 {\r\n    color: #26c6da;\r\n}\r\n\r\n.text-cyan-500 , i.cyan-500 {\r\n    color: #00bcd4;\r\n}\r\n\r\n.text-cyan-600 , i.cyan-600 {\r\n    color: #00acc1;\r\n}\r\n\r\n.text-cyan-700 , i.cyan-700 {\r\n    color: #0097a7;\r\n}\r\n\r\n.text-cyan-800 , i.cyan-800 {\r\n    color: #00838f;\r\n}\r\n\r\n.text-cyan-900 , i.cyan-900 {\r\n    color: #006064;\r\n}\r\n\r\n.text-teal , i.teal {\r\n    color: #009688;\r\n}\r\n\r\n.text-teal-50 , i.teal-50 {\r\n    color: #e0f2f1;\r\n}\r\n\r\n.text-teal-100 , i.teal-100 {\r\n    color: #b2dfdb;\r\n}\r\n\r\n.text-teal-200 , i.teal-200 {\r\n    color: #80cbc4;\r\n}\r\n\r\n.text-teal-300 , i.teal-300 {\r\n    color: #4db6ac;\r\n}\r\n\r\n.text-teal-400 , i.teal-400 {\r\n    color: #26a69a;\r\n}\r\n\r\n.text-teal-500 , i.teal-500 {\r\n    color: #009688;\r\n}\r\n\r\n.text-teal-600 , i.teal-600 {\r\n    color: #00897b;\r\n}\r\n\r\n.text-teal-700 , i.teal-700 {\r\n    color: #00796b;\r\n}\r\n\r\n.text-teal-800 , i.teal-800 {\r\n    color: #00695c;\r\n}\r\n\r\n.text-teal-900 , i.teal-900 {\r\n    color: #004d40;\r\n}\r\n\r\n.text-green , i.green {\r\n    color: #4caf50;\r\n}\r\n\r\n.text-green-50 , i.green-50 {\r\n    color: #e8f5e9;\r\n}\r\n\r\n.text-green-100 , i.green-100 {\r\n    color: #c8e6c9;\r\n}\r\n\r\n.text-green-200 , i.green-200 {\r\n    color: #a5d6a7;\r\n}\r\n\r\n.text-green-300 , i.green-300 {\r\n    color: #81c784;\r\n}\r\n\r\n.text-green-400 , i.green-400 {\r\n    color: #66bb6a;\r\n}\r\n\r\n.text-green-500 , i.green-500 {\r\n    color: #4caf50;\r\n}\r\n\r\n.text-green-600 , i.green-600 {\r\n    color: #43a047;\r\n}\r\n\r\n.text-green-700 , i.green-700 {\r\n    color: #388e3c;\r\n}\r\n\r\n.text-green-800 , i.green-800 {\r\n    color: #2e7d32;\r\n}\r\n\r\n.text-green-900 , i.green-900 {\r\n    color: #1b5e20;\r\n}\r\n\r\n.text-light-green , i.light-green {\r\n    color: #8bc34a;\r\n}\r\n\r\n.text-light-green-50 , i.light-green-50 {\r\n    color: #f1f8e9;\r\n}\r\n\r\n.text-light-green-100 , i.light-green-100 {\r\n    color: #dcedc8;\r\n}\r\n\r\n.text-light-green-200 , i.light-green-200 {\r\n    color: #c5e1a5;\r\n}\r\n\r\n.text-light-green-300 , i.light-green-300 {\r\n    color: #aed581;\r\n}\r\n\r\n.text-light-green-400 , i.light-green-400 {\r\n    color: #9ccc65;\r\n}\r\n\r\n.text-light-green-500 , i.light-green-500 {\r\n    color: #8bc34a;\r\n}\r\n\r\n.text-light-green-600 , i.light-green-600 {\r\n    color: #7cb342;\r\n}\r\n\r\n.text-light-green-700 , i.light-green-700 {\r\n    color: #689f38;\r\n}\r\n\r\n.text-light-green-800 , i.light-green-800 {\r\n    color: #558b2f;\r\n}\r\n\r\n.text-light-green-900 , i.light-green-900 {\r\n    color: #33691e;\r\n}\r\n\r\n.text-lime , i.lime {\r\n    color: #cddc39;\r\n}\r\n\r\n.text-lime-50 , i.lime-50 {\r\n    color: #f9fbe7;\r\n}\r\n\r\n.text-lime-100 , i.lime-100 {\r\n    color: #f0f4c3;\r\n}\r\n\r\n.text-lime-200 , i.lime-200 {\r\n    color: #e6ee9c;\r\n}\r\n\r\n.text-lime-300 , i.lime-300 {\r\n    color: #dce775;\r\n}\r\n\r\n.text-lime-400 , i.lime-400 {\r\n    color: #d4e157;\r\n}\r\n\r\n.text-lime-500 , i.lime-500 {\r\n    color: #cddc39;\r\n}\r\n\r\n.text-lime-600 , i.lime-600 {\r\n    color: #c0ca33;\r\n}\r\n\r\n.text-lime-700 , i.lime-700 {\r\n    color: #afb42b;\r\n}\r\n\r\n.text-lime-800 , i.lime-800 {\r\n    color: #9e9d24;\r\n}\r\n\r\n.text-lime-900 , i.lime-900 {\r\n    color: #827717;\r\n}\r\n\r\n.text-yellow , i.yellow {\r\n    color: #ffeb3b;\r\n}\r\n\r\n.text-yellow-50 , i.yellow-50 {\r\n    color: #fffde7;\r\n}\r\n\r\n.text-yellow-100 , i.yellow-100 {\r\n    color: #fff9c4;\r\n}\r\n\r\n.text-yellow-200 , i.yellow-200 {\r\n    color: #fff59d;\r\n}\r\n\r\n.text-yellow-300 , i.yellow-300 {\r\n    color: #fff176;\r\n}\r\n\r\n.text-yellow-400 , i.yellow-400 {\r\n    color: #ffee58;\r\n}\r\n\r\n.text-yellow-500 , i.yellow-500 {\r\n    color: #ffeb3b;\r\n}\r\n\r\n.text-yellow-600 , i.yellow-600 {\r\n    color: #fdd835;\r\n}\r\n\r\n.text-yellow-700 , i.yellow-700 {\r\n    color: #fbc02d;\r\n}\r\n\r\n.text-yellow-800 , i.yellow-800 {\r\n    color: #f9a825;\r\n}\r\n\r\n.text-yellow-900 , i.yellow-900 {\r\n    color: #f57f17;\r\n}\r\n\r\n.text-amber , i.amber {\r\n    color: #ffc107;\r\n}\r\n\r\n.text-amber-50 , i.amber-50 {\r\n    color: #fff8e1;\r\n}\r\n\r\n.text-amber-100 , i.amber-100 {\r\n    color: #ffecb3;\r\n}\r\n\r\n.text-amber-200 , i.amber-200 {\r\n    color: #ffe082;\r\n}\r\n\r\n.text-amber-300 , i.amber-300 {\r\n    color: #ffd54f;\r\n}\r\n\r\n.text-amber-400 , i.amber-400 {\r\n    color: #ffca28;\r\n}\r\n\r\n.text-amber-500 , i.amber-500 {\r\n    color: #ffc107;\r\n}\r\n\r\n.text-amber-600 , i.amber-600 {\r\n    color: #ffb300;\r\n}\r\n\r\n.text-amber-700 , i.amber-700 {\r\n    color: #ffa000;\r\n}\r\n\r\n.text-amber-800 , i.amber-800 {\r\n    color: #ff8f00;\r\n}\r\n\r\n.text-amber-900 , i.amber-900 {\r\n    color: #ff6f00;\r\n}\r\n\r\n.text-orange , i.orange {\r\n    color: #ff9800;\r\n}\r\n\r\n.text-orange-50 , i.orange-50 {\r\n    color: #fff3e0;\r\n}\r\n\r\n.text-orange-100 , i.orange-100 {\r\n    color: #ffe0b2;\r\n}\r\n\r\n.text-orange-200 , i.orange-200 {\r\n    color: #ffcc80;\r\n}\r\n\r\n.text-orange-300 , i.orange-300 {\r\n    color: #ffb74d;\r\n}\r\n\r\n.text-orange-400 , i.orange-400 {\r\n    color: #ffa726;\r\n}\r\n\r\n.text-orange-500 , i.orange-500 {\r\n    color: #ff9800;\r\n}\r\n\r\n.text-orange-600 , i.orange-600 {\r\n    color: #fb8c00;\r\n}\r\n\r\n.text-orange-700 , i.orange-700 {\r\n    color: #f57c00;\r\n}\r\n\r\n.text-orange-800 , i.orange-800 {\r\n    color: #ef6c00;\r\n}\r\n\r\n.text-orange-900 , i.orange-900 {\r\n    color: #e65100;\r\n}\r\n\r\n.text-deep-orange , i.deep-orange {\r\n    color: #ff5722;\r\n}\r\n\r\n.text-deep-orange-50 , i.deep-orange-50 {\r\n    color: #fbe9e7;\r\n}\r\n\r\n.text-deep-orange-100 , i.deep-orange-100 {\r\n    color: #ffccbc;\r\n}\r\n\r\n.text-deep-orange-200 , i.deep-orange-200 {\r\n    color: #ffab91;\r\n}\r\n\r\n.text-deep-orange-300 , i.deep-orange-300 {\r\n    color: #ff8a65;\r\n}\r\n\r\n.text-deep-orange-400 , i.deep-orange-400 {\r\n    color: #ff7043;\r\n}\r\n\r\n.text-deep-orange-500 , i.deep-orange-500 {\r\n    color: #ff5722;\r\n}\r\n\r\n.text-deep-orange-600 , i.deep-orange-600 {\r\n    color: #f4511e;\r\n}\r\n\r\n.text-deep-orange-700 , i.deep-orange-700 {\r\n    color: #e64a19;\r\n}\r\n\r\n.text-deep-orange-800 , i.deep-orange-800 {\r\n    color: #d84315;\r\n}\r\n\r\n.text-deep-orange-900 , i.deep-orange-900 {\r\n    color: #bf360c;\r\n}\r\n\r\n.text-brown , i.brown {\r\n    color: #795548;\r\n}\r\n\r\n.text-brown-50 , i.brown-50 {\r\n    color: #efebe9;\r\n}\r\n\r\n.text-brown-100 , i.brown-100 {\r\n    color: #d7ccc8;\r\n}\r\n\r\n.text-brown-200 , i.brown-200 {\r\n    color: #bcaaa4;\r\n}\r\n\r\n.text-brown-300 , i.brown-300 {\r\n    color: #a1887f;\r\n}\r\n\r\n.text-brown-400 , i.brown-400 {\r\n    color: #8d6e63;\r\n}\r\n\r\n.text-brown-500 , i.brown-500 {\r\n    color: #795548;\r\n}\r\n\r\n.text-brown-600 , i.brown-600 {\r\n    color: #6d4c41;\r\n}\r\n\r\n.text-brown-700 , i.brown-700 {\r\n    color: #5d4037;\r\n}\r\n\r\n.text-brown-800 , i.brown-800 {\r\n    color: #4e342e;\r\n}\r\n\r\n.text-brown-900 , i.brown-900 {\r\n    color: #3e2723;\r\n}\r\n\r\n.text-grey , i.grey {\r\n    color: #9e9e9e;\r\n}\r\n\r\n.text-grey-50 , i.grey-50 {\r\n    color: #fafafa;\r\n}\r\n\r\n.text-grey-100 , i.grey-100 {\r\n    color: #f5f5f5;\r\n}\r\n\r\n.text-grey-200 , i.grey-200 {\r\n    color: #eee;\r\n}\r\n\r\n.text-grey-300 , i.grey-300 {\r\n    color: #e0e0e0;\r\n}\r\n\r\n.text-grey-400 , i.grey-400 {\r\n    color: #bdbdbd;\r\n}\r\n\r\n.text-grey-500 , i.grey-500 {\r\n    color: #9e9e9e;\r\n}\r\n\r\n.text-grey-600 , i.grey-600 {\r\n    color: #757575;\r\n}\r\n\r\n.text-grey-700 , i.grey-700 {\r\n    color: #616161;\r\n}\r\n\r\n.text-grey-800 , i.grey-800 {\r\n    color: #424242;\r\n}\r\n\r\n.text-grey-900 , i.grey-900 {\r\n    color: #212121;\r\n}\r\n\r\n.text-blue-grey , i.blue-grey {\r\n    color: #607d8b;\r\n}\r\n\r\n.text-blue-grey-50 , i.blue-grey-50 {\r\n    color: #eceff1;\r\n}\r\n\r\n.text-blue-grey-100 , i.blue-grey-100 {\r\n    color: #cfd8dc;\r\n}\r\n\r\n.text-blue-grey-200 , i.blue-grey-200 {\r\n    color: #b0bec5;\r\n}\r\n\r\n.text-blue-grey-300 , i.blue-grey-300 {\r\n    color: #90a4ae;\r\n}\r\n\r\n.text-blue-grey-400 , i.blue-grey-400 {\r\n    color: #78909c;\r\n}\r\n\r\n.text-blue-grey-500 , i.blue-grey-500 {\r\n    color: #607d8b;\r\n}\r\n\r\n.text-blue-grey-600 , i.blue-grey-600 {\r\n    color: #546e7a;\r\n}\r\n\r\n.text-blue-grey-700 , i.blue-grey-700 {\r\n    color: #455a64;\r\n}\r\n\r\n.text-blue-grey-800 , i.blue-grey-800 {\r\n    color: #37474f;\r\n}\r\n\r\n.text-blue-grey-900 , i.blue-grey-900 {\r\n    color: #263238;\r\n}\r\n\r\n.text-black , i.black {\r\n    color: #000;\r\n}\r\n\r\n.text-white , i.white {\r\n    color: #fff;\r\n}\r\n\r\n.border-red {\r\n    border: 1px solid #f44336\r\n}\r\n\r\n.border-red-50 {\r\n    border: 1px solid #ffebee\r\n}\r\n\r\n.border-red-100 {\r\n    border: 1px solid #ffcdd2\r\n}\r\n\r\n.border-red-200 {\r\n    border: 1px solid #ef9a9a\r\n}\r\n\r\n.border-red-300 {\r\n    border: 1px solid #e57373\r\n}\r\n\r\n.border-red-400 {\r\n    border: 1px solid #ef5350\r\n}\r\n\r\n.border-red-500 {\r\n    border: 1px solid #f44336\r\n}\r\n\r\n.border-red-600 {\r\n    border: 1px solid #e53935\r\n}\r\n\r\n.border-red-700 {\r\n    border: 1px solid #d32f2f\r\n}\r\n\r\n.border-red-800 {\r\n    border: 1px solid #c62828\r\n}\r\n\r\n.border-red-900 {\r\n    border: 1px solid #b71c1c\r\n}\r\n\r\n.border-pink {\r\n    border: 1px solid #E91E63\r\n}\r\n\r\n.border-pink-50 {\r\n    border: 1px solid #fce4ec\r\n}\r\n\r\n.border-pink-100 {\r\n    border: 1px solid #f8bbd0\r\n}\r\n\r\n.border-pink-200 {\r\n    border: 1px solid #f48fb1\r\n}\r\n\r\n.border-pink-300 {\r\n    border: 1px solid #f06292\r\n}\r\n\r\n.border-pink-400 {\r\n    border: 1px solid #ec407a\r\n}\r\n\r\n.border-pink-500 {\r\n    border: 1px solid #e91e63\r\n}\r\n\r\n.border-pink-600 {\r\n    border: 1px solid #d81b60\r\n}\r\n\r\n.border-pink-700 {\r\n    border: 1px solid #c2185b\r\n}\r\n\r\n.border-pink-800 {\r\n    border: 1px solid #ad1457\r\n}\r\n\r\n.border-pink-900 {\r\n    border: 1px solid #880e4f\r\n}\r\n\r\n.border-purple {\r\n    border: 1px solid #9c27b0\r\n}\r\n\r\n.border-purple-50 {\r\n    border: 1px solid #f3e5f5\r\n}\r\n\r\n.border-purple-100 {\r\n    border: 1px solid #e1bee7\r\n}\r\n\r\n.border-purple-200 {\r\n    border: 1px solid #ce93d8\r\n}\r\n\r\n.border-purple-300 {\r\n    border: 1px solid #ba68c8\r\n}\r\n\r\n.border-purple-400 {\r\n    border: 1px solid #ab47bc\r\n}\r\n\r\n.border-purple-500 {\r\n    border: 1px solid #9c27b0\r\n}\r\n\r\n.border-purple-600 {\r\n    border: 1px solid #8e24aa\r\n}\r\n\r\n.border-purple-700 {\r\n    border: 1px solid #7b1fa2\r\n}\r\n\r\n.border-purple-800 {\r\n    border: 1px solid #6a1b9a\r\n}\r\n\r\n.border-purple-900 {\r\n    border: 1px solid #4a148c\r\n}\r\n\r\n.border-deep-purple {\r\n    border: 1px solid #673ab7\r\n}\r\n\r\n.border-deep-purple-50 {\r\n    border: 1px solid #ede7f6\r\n}\r\n\r\n.border-deep-purple-100 {\r\n    border: 1px solid #d1c4e9\r\n}\r\n\r\n.border-deep-purple-200 {\r\n    border: 1px solid #b39ddb\r\n}\r\n\r\n.border-deep-purple-300 {\r\n    border: 1px solid #9575cd\r\n}\r\n\r\n.border-deep-purple-400 {\r\n    border: 1px solid #7e57c2\r\n}\r\n\r\n.border-deep-purple-500 {\r\n    border: 1px solid #673ab7\r\n}\r\n\r\n.border-deep-purple-600 {\r\n    border: 1px solid #5e35b1\r\n}\r\n\r\n.border-deep-purple-700 {\r\n    border: 1px solid #512da8\r\n}\r\n\r\n.border-deep-purple-800 {\r\n    border: 1px solid #4527a0\r\n}\r\n\r\n.border-deep-purple-900 {\r\n    border: 1px solid #311b92\r\n}\r\n\r\n.border-indigo {\r\n    border: 1px solid #3f51b5\r\n}\r\n\r\n.border-indigo-50 {\r\n    border: 1px solid #e8eaf6\r\n}\r\n\r\n.border-indigo-100 {\r\n    border: 1px solid #c5cae9\r\n}\r\n\r\n.border-indigo-200 {\r\n    border: 1px solid #9fa8da\r\n}\r\n\r\n.border-indigo-300 {\r\n    border: 1px solid #7986cb\r\n}\r\n\r\n.border-indigo-400 {\r\n    border: 1px solid #5c6bc0\r\n}\r\n\r\n.border-indigo-500 {\r\n    border: 1px solid #3f51b5\r\n}\r\n\r\n.border-indigo-600 {\r\n    border: 1px solid #3949ab\r\n}\r\n\r\n.border-indigo-700 {\r\n    border: 1px solid #303f9f\r\n}\r\n\r\n.border-indigo-800 {\r\n    border: 1px solid #283593\r\n}\r\n\r\n.border-indigo-900 {\r\n    border: 1px solid #1a237e\r\n}\r\n\r\n.border-blue {\r\n    border: 1px solid #2196F3\r\n}\r\n\r\n.border-blue-50 {\r\n    border: 1px solid #e3f2fd\r\n}\r\n\r\n.border-blue-100 {\r\n    border: 1px solid #bbdefb\r\n}\r\n\r\n.border-blue-200 {\r\n    border: 1px solid #90caf9\r\n}\r\n\r\n.border-blue-300 {\r\n    border: 1px solid #64b5f6\r\n}\r\n\r\n.border-blue-400 {\r\n    border: 1px solid #42a5f5\r\n}\r\n\r\n.border-blue-500 {\r\n    border: 1px solid #2196f3\r\n}\r\n\r\n.border-blue-600 {\r\n    border: 1px solid #1e88e5\r\n}\r\n\r\n.border-blue-700 {\r\n    border: 1px solid #1976d2\r\n}\r\n\r\n.border-blue-800 {\r\n    border: 1px solid #1565c0\r\n}\r\n\r\n.border-blue-900 {\r\n    border: 1px solid #0d47a1\r\n}\r\n\r\n.border-light-blue {\r\n    border: 1px solid #03a9f4\r\n}\r\n\r\n.border-light-blue-50 {\r\n    border: 1px solid #e1f5fe\r\n}\r\n\r\n.border-light-blue-100 {\r\n    border: 1px solid #b3e5fc\r\n}\r\n\r\n.border-light-blue-200 {\r\n    border: 1px solid #81d4fa\r\n}\r\n\r\n.border-light-blue-300 {\r\n    border: 1px solid #4fc3f7\r\n}\r\n\r\n.border-light-blue-400 {\r\n    border: 1px solid #29b6f6\r\n}\r\n\r\n.border-light-blue-500 {\r\n    border: 1px solid #03a9f4\r\n}\r\n\r\n.border-light-blue-600 {\r\n    border: 1px solid #039be5\r\n}\r\n\r\n.border-light-blue-700 {\r\n    border: 1px solid #0288d1\r\n}\r\n\r\n.border-light-blue-800 {\r\n    border: 1px solid #0277bd\r\n}\r\n\r\n.border-light-blue-900 {\r\n    border: 1px solid #01579b\r\n}\r\n\r\n.border-cyan {\r\n    border: 1px solid #00bcd4\r\n}\r\n\r\n.border-cyan-50 {\r\n    border: 1px solid #e0f7fa\r\n}\r\n\r\n.border-cyan-100 {\r\n    border: 1px solid #b2ebf2\r\n}\r\n\r\n.border-cyan-200 {\r\n    border: 1px solid #80deea\r\n}\r\n\r\n.border-cyan-300 {\r\n    border: 1px solid #4dd0e1\r\n}\r\n\r\n.border-cyan-400 {\r\n    border: 1px solid #26c6da\r\n}\r\n\r\n.border-cyan-500 {\r\n    border: 1px solid #00bcd4\r\n}\r\n\r\n.border-cyan-600 {\r\n    border: 1px solid #00acc1\r\n}\r\n\r\n.border-cyan-700 {\r\n    border: 1px solid #0097a7\r\n}\r\n\r\n.border-cyan-800 {\r\n    border: 1px solid #00838f\r\n}\r\n\r\n.border-cyan-900 {\r\n    border: 1px solid #006064\r\n}\r\n\r\n.border-teal {\r\n    border: 1px solid #009688\r\n}\r\n\r\n.border-teal-50 {\r\n    border: 1px solid #e0f2f1\r\n}\r\n\r\n.border-teal-100 {\r\n    border: 1px solid #b2dfdb\r\n}\r\n\r\n.border-teal-200 {\r\n    border: 1px solid #80cbc4\r\n}\r\n\r\n.border-teal-300 {\r\n    border: 1px solid #4db6ac\r\n}\r\n\r\n.border-teal-400 {\r\n    border: 1px solid #26a69a\r\n}\r\n\r\n.border-teal-500 {\r\n    border: 1px solid #009688\r\n}\r\n\r\n.border-teal-600 {\r\n    border: 1px solid #00897b\r\n}\r\n\r\n.border-teal-700 {\r\n    border: 1px solid #00796b\r\n}\r\n\r\n.border-teal-800 {\r\n    border: 1px solid #00695c\r\n}\r\n\r\n.border-teal-900 {\r\n    border: 1px solid #004d40\r\n}\r\n\r\n.border-green {\r\n    border: 1px solid #4caf50\r\n}\r\n\r\n.border-green-50 {\r\n    border: 1px solid #e8f5e9\r\n}\r\n\r\n.border-green-100 {\r\n    border: 1px solid #c8e6c9\r\n}\r\n\r\n.border-green-200 {\r\n    border: 1px solid #a5d6a7\r\n}\r\n\r\n.border-green-300 {\r\n    border: 1px solid #81c784\r\n}\r\n\r\n.border-green-400 {\r\n    border: 1px solid #66bb6a\r\n}\r\n\r\n.border-green-500 {\r\n    border: 1px solid #4caf50\r\n}\r\n\r\n.border-green-600 {\r\n    border: 1px solid #43a047\r\n}\r\n\r\n.border-green-700 {\r\n    border: 1px solid #388e3c\r\n}\r\n\r\n.border-green-800 {\r\n    border: 1px solid #2e7d32\r\n}\r\n\r\n.border-green-900 {\r\n    border: 1px solid #1b5e20\r\n}\r\n\r\n.border-light-green {\r\n    border: 1px solid #8bc34a\r\n}\r\n\r\n.border-light-green-50 {\r\n    border: 1px solid #f1f8e9\r\n}\r\n\r\n.border-light-green-100 {\r\n    border: 1px solid #dcedc8\r\n}\r\n\r\n.border-light-green-200 {\r\n    border: 1px solid #c5e1a5\r\n}\r\n\r\n.border-light-green-300 {\r\n    border: 1px solid #aed581\r\n}\r\n\r\n.border-light-green-400 {\r\n    border: 1px solid #9ccc65\r\n}\r\n\r\n.border-light-green-500 {\r\n    border: 1px solid #8bc34a\r\n}\r\n\r\n.border-light-green-600 {\r\n    border: 1px solid #7cb342\r\n}\r\n\r\n.border-light-green-700 {\r\n    border: 1px solid #689f38\r\n}\r\n\r\n.border-light-green-800 {\r\n    border: 1px solid #558b2f\r\n}\r\n\r\n.border-light-green-900 {\r\n    border: 1px solid #33691e\r\n}\r\n\r\n.border-lime {\r\n    border: 1px solid #cddc39\r\n}\r\n\r\n.border-lime-50 {\r\n    border: 1px solid #f9fbe7\r\n}\r\n\r\n.border-lime-100 {\r\n    border: 1px solid #f0f4c3\r\n}\r\n\r\n.border-lime-200 {\r\n    border: 1px solid #e6ee9c\r\n}\r\n\r\n.border-lime-300 {\r\n    border: 1px solid #dce775\r\n}\r\n\r\n.border-lime-400 {\r\n    border: 1px solid #d4e157\r\n}\r\n\r\n.border-lime-500 {\r\n    border: 1px solid #cddc39\r\n}\r\n\r\n.border-lime-600 {\r\n    border: 1px solid #c0ca33\r\n}\r\n\r\n.border-lime-700 {\r\n    border: 1px solid #afb42b\r\n}\r\n\r\n.border-lime-800 {\r\n    border: 1px solid #9e9d24\r\n}\r\n\r\n.border-lime-900 {\r\n    border: 1px solid #827717\r\n}\r\n\r\n.border-yellow {\r\n    border: 1px solid #ffeb3b\r\n}\r\n\r\n.border-yellow-50 {\r\n    border: 1px solid #fffde7\r\n}\r\n\r\n.border-yellow-100 {\r\n    border: 1px solid #fff9c4\r\n}\r\n\r\n.border-yellow-200 {\r\n    border: 1px solid #fff59d\r\n}\r\n\r\n.border-yellow-300 {\r\n    border: 1px solid #fff176\r\n}\r\n\r\n.border-yellow-400 {\r\n    border: 1px solid #ffee58\r\n}\r\n\r\n.border-yellow-500 {\r\n    border: 1px solid #ffeb3b\r\n}\r\n\r\n.border-yellow-600 {\r\n    border: 1px solid #fdd835\r\n}\r\n\r\n.border-yellow-700 {\r\n    border: 1px solid #fbc02d\r\n}\r\n\r\n.border-yellow-800 {\r\n    border: 1px solid #f9a825\r\n}\r\n\r\n.border-yellow-900 {\r\n    border: 1px solid #f57f17\r\n}\r\n\r\n.border-amber {\r\n    border: 1px solid #ffc107\r\n}\r\n\r\n.border-amber-50 {\r\n    border: 1px solid #fff8e1\r\n}\r\n\r\n.border-amber-100 {\r\n    border: 1px solid #ffecb3\r\n}\r\n\r\n.border-amber-200 {\r\n    border: 1px solid #ffe082\r\n}\r\n\r\n.border-amber-300 {\r\n    border: 1px solid #ffd54f\r\n}\r\n\r\n.border-amber-400 {\r\n    border: 1px solid #ffca28\r\n}\r\n\r\n.border-amber-500 {\r\n    border: 1px solid #ffc107\r\n}\r\n\r\n.border-amber-600 {\r\n    border: 1px solid #ffb300\r\n}\r\n\r\n.border-amber-700 {\r\n    border: 1px solid #ffa000\r\n}\r\n\r\n.border-amber-800 {\r\n    border: 1px solid #ff8f00\r\n}\r\n\r\n.border-amber-900 {\r\n    border: 1px solid #ff6f00\r\n}\r\n\r\n.border-orange {\r\n    border: 1px solid #ff9800\r\n}\r\n\r\n.border-orange-50 {\r\n    border: 1px solid #fff3e0\r\n}\r\n\r\n.border-orange-100 {\r\n    border: 1px solid #ffe0b2\r\n}\r\n\r\n.border-orange-200 {\r\n    border: 1px solid #ffcc80\r\n}\r\n\r\n.border-orange-300 {\r\n    border: 1px solid #ffb74d\r\n}\r\n\r\n.border-orange-400 {\r\n    border: 1px solid #ffa726\r\n}\r\n\r\n.border-orange-500 {\r\n    border: 1px solid #ff9800\r\n}\r\n\r\n.border-orange-600 {\r\n    border: 1px solid #fb8c00\r\n}\r\n\r\n.border-orange-700 {\r\n    border: 1px solid #f57c00\r\n}\r\n\r\n.border-orange-800 {\r\n    border: 1px solid #ef6c00\r\n}\r\n\r\n.border-orange-900 {\r\n    border: 1px solid #e65100\r\n}\r\n\r\n.border-deep-orange {\r\n    border: 1px solid #ff5722\r\n}\r\n\r\n.border-deep-orange-50 {\r\n    border: 1px solid #fbe9e7\r\n}\r\n\r\n.border-deep-orange-100 {\r\n    border: 1px solid #ffccbc\r\n}\r\n\r\n.border-deep-orange-200 {\r\n    border: 1px solid #ffab91\r\n}\r\n\r\n.border-deep-orange-300 {\r\n    border: 1px solid #ff8a65\r\n}\r\n\r\n.border-deep-orange-400 {\r\n    border: 1px solid #ff7043\r\n}\r\n\r\n.border-deep-orange-500 {\r\n    border: 1px solid #ff5722\r\n}\r\n\r\n.border-deep-orange-600 {\r\n    border: 1px solid #f4511e\r\n}\r\n\r\n.border-deep-orange-700 {\r\n    border: 1px solid #e64a19\r\n}\r\n\r\n.border-deep-orange-800 {\r\n    border: 1px solid #d84315\r\n}\r\n\r\n.border-deep-orange-900 {\r\n    border: 1px solid #bf360c\r\n}\r\n\r\n.border-brown {\r\n    border: 1px solid #795548\r\n}\r\n\r\n.border-brown-50 {\r\n    border: 1px solid #efebe9\r\n}\r\n\r\n.border-brown-100 {\r\n    border: 1px solid #d7ccc8\r\n}\r\n\r\n.border-brown-200 {\r\n    border: 1px solid #bcaaa4\r\n}\r\n\r\n.border-brown-300 {\r\n    border: 1px solid #a1887f\r\n}\r\n\r\n.border-brown-400 {\r\n    border: 1px solid #8d6e63\r\n}\r\n\r\n.border-brown-500 {\r\n    border: 1px solid #795548\r\n}\r\n\r\n.border-brown-600 {\r\n    border: 1px solid #6d4c41\r\n}\r\n\r\n.border-brown-700 {\r\n    border: 1px solid #5d4037\r\n}\r\n\r\n.border-brown-800 {\r\n    border: 1px solid #4e342e\r\n}\r\n\r\n.border-brown-900 {\r\n    border: 1px solid #3e2723\r\n}\r\n\r\n.border-grey {\r\n    border: 1px solid #9e9e9e\r\n}\r\n\r\n.border-grey-50 {\r\n    border: 1px solid #fafafa\r\n}\r\n\r\n.border-grey-100 {\r\n    border: 1px solid #f5f5f5\r\n}\r\n\r\n.border-grey-200 {\r\n    border: 1px solid #eee\r\n}\r\n\r\n.border-grey-300 {\r\n    border: 1px solid #e0e0e0\r\n}\r\n\r\n.border-grey-400 {\r\n    border: 1px solid #bdbdbd\r\n}\r\n\r\n.border-grey-500 {\r\n    border: 1px solid #9e9e9e\r\n}\r\n\r\n.border-grey-600 {\r\n    border: 1px solid #757575\r\n}\r\n\r\n.border-grey-700 {\r\n    border: 1px solid #616161\r\n}\r\n\r\n.border-grey-800 {\r\n    border: 1px solid #424242\r\n}\r\n\r\n.border-grey-900 {\r\n    border: 1px solid #212121\r\n}\r\n\r\n.border-blue-grey {\r\n    border: 1px solid #607d8b\r\n}\r\n\r\n.border-blue-grey-50 {\r\n    border: 1px solid #eceff1\r\n}\r\n\r\n.border-blue-grey-100 {\r\n    border: 1px solid #cfd8dc\r\n}\r\n\r\n.border-blue-grey-200 {\r\n    border: 1px solid #b0bec5\r\n}\r\n\r\n.border-blue-grey-300 {\r\n    border: 1px solid #90a4ae\r\n}\r\n\r\n.border-blue-grey-400 {\r\n    border: 1px solid #78909c\r\n}\r\n\r\n.border-blue-grey-500 {\r\n    border: 1px solid #607d8b\r\n}\r\n\r\n.border-blue-grey-600 {\r\n    border: 1px solid #546e7a\r\n}\r\n\r\n.border-blue-grey-700 {\r\n    border: 1px solid #455a64\r\n}\r\n\r\n.border-blue-grey-800 {\r\n    border: 1px solid #37474f\r\n}\r\n\r\n.border-blue-grey-900 {\r\n    border: 1px solid #263238\r\n}\r\n\r\n.border-black {\r\n    border: 1px solid #000\r\n}\r\n\r\n.border-white {\r\n    border: 1px solid #fff\r\n}\r\n"
  },
  {
    "path": "base/colors.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title></title>\n    <link href=\"https://fonts.googleapis.com/css?family=Dosis|Raleway:400,700|Roboto:300,400,900,\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n    <link rel=\"stylesheet\" href=\"../base/reset.css\">\n    <link rel=\"stylesheet\" href=\"../base/mobileui.css\">\n    <link rel=\"stylesheet\" href=\"../base/colors.css\">\n    <link rel=\"stylesheet\" href=\"../base/icons.css\">\n    <link rel=\"stylesheet\" href=\"../button/style.css\">\n    <link rel=\"stylesheet\" href=\"../list/style.css\">\n    <link rel=\"stylesheet\" href=\"../header/style.css\">\n    <link rel=\"stylesheet\" href=\"../grid/style.css\">\n    <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n    <style>\n      .content-land { margin-left:50px}\n    </style>\n  </head>\n  <body class=\"content-land\">\n    <!-- BEGIN -->\n    <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">Colors</h2>\n    <p>MobileUI uses the suggestions material design colors because material takes cues from contemporary architecture, road signs, pavement marking tape, and athletic courts. Color should be unexpected and vibrant.</p>\n    <p>This color palette comprises primary and accent colors that can be used for illustration or to develop your brand colors. They’ve been designed to work harmoniously with each other. The color palette starts with primary colors and fills in the spectrum to create a complete and usable palette for Android, Web, and iOS.</p>\n    <p>Themes enable consistent app styling through surface shades, shadow depth, and ink opacity.</p>\n    <p>\n      The theme's colors are in base MobileUI, to use it install base through the command:\n    </p>\n    <pre>mobileui install base</pre>\n    <p>And just add the class in your component to use the color, example:  </p>\n<textarea class=\"bind-code\" mode=\"text/html\" header-absolute=\"true\" replace=\"body,div|grey-100,grey-100 body\" height-preview=\"430px\">\n<body class=\"grey-100\">\n  <div class=\"header indigo\">\n    <button class=\"left icon ion-navicon\"></button>\n    <button class=\"right icon ion-plus-circled\"></button>\n  </div>\n  <div class=\"content has-header\">\n    <div class=\"row padding indigo\">\n      <div class=\"col-25 padding\">\n        <img class=\"avatar circle\" src=\"../assets/img/33.jpg\" />\n      </div>\n      <div class=\"col padding\">\n        <h1 class=\"text-big text-light\">Jeanette Fletcher</h1>\n        <p class=\"text-blue-200\">jeanette.fletcher15@example.com</p>\n      </div>\n    </div>\n    <div class=\"row align-center\">\n      <div class=\"col padding light-blue\">\n        <h1 class=\"text-huge text-strong\">12</h1>\n        <p>remaning tasks</p>\n      </div>\n      <div class=\"col padding pink-400\">\n        <h1 class=\"text-huge text-strong\">32</h1>\n        <p>completed tasks</p>\n      </div>\n    </div>\n    <div class=\"list no-border\">\n      <div class=\"item border-bottom text-grey-300\">\n        <h1 class=\"text-grey-600 text-light\">Finish landing page concept</h1>\n        <span class=\"purple radius padding text-small\">design</span>\n        <span class=\"blue radius padding text-small\">freelance</span>\n        <span class=\"red radius padding text-small\">web</span>\n        <i class=\"right icon ion-ios-arrow-right text-grey-700 text-huge\"></i>\n      </div>\n      <div class=\"item border-bottom text-grey-300\">\n        <h1 class=\"text-grey-600 text-light\">Design app illustrations</h1>\n        <span class=\"purple radius padding text-small\">design</span>\n        <span class=\"blue radius padding text-small\">freelance</span>\n        <span class=\"green radius padding text-small\">mobile</span>\n        <i class=\"right icon ion-ios-arrow-right text-grey-700 text-huge\"></i>\n      </div>\n    </div>\n  </div>\n</body></textarea>\n\n    <h3 class=\"sub-title-doc\">Colors MobileUI:</h3>\n    <div class=\"color-palettes\">\n      <section class=\"color-group\">\n        <ul>\n          <li class=\"color main-color\" style=\"background-color: #f44336;\">red</li>\n          <li class=\"color dark\" style=\"background-color: #ffebee;\">red-50</li>\n          <li class=\"color dark\" style=\"background-color: #ffcdd2;\">red-100</li>\n          <li class=\"color dark\" style=\"background-color: #ef9a9a\">red-200</li>\n          <li class=\"color dark\" style=\"background-color: #e57373;\">red-300</li>\n          <li class=\"color\" style=\"background-color: #ef5350;\">red-400</li>\n          <li class=\"color\" style=\"background-color: #f44336;\">red-500</li>\n          <li class=\"color\" style=\"background-color: #e53935;\">red-600</li>\n          <li class=\"color\" style=\"background-color: #d32f2f;\">red-700</li>\n          <li class=\"color\" style=\"background-color: #c62828;\">red-800</li>\n          <li class=\"color\" style=\"background-color: #b71c1c;\">red-900</li>\n        </ul>\n      </section>\n\n      <section class=\"color-group\">\n      <ul>\n      <li class=\"color main-color\" style=\"background-color: #E91E63;\">pink</li>\n      <li class=\"color dark\" style=\"background-color: #fce4ec;\">pink-50</li>\n      <li class=\"color dark\" style=\"background-color: #f8bbd0;\">pink-100</li>\n      <li class=\"color dark\" style=\"background-color: #f48fb1;\">pink-200</li>\n      <li class=\"color light-strong\" style=\"background-color: #f06292;\">Pink-300</li>\n      <li class=\"color \" style=\"background-color: #ec407a;\">pink-400</li>\n      <li class=\"color\" style=\"background-color: #e91e63;\">pink-500</li>\n      <li class=\"color\" style=\"background-color: #d81b60;\">pink-600</li>\n      <li class=\"color\" style=\"background-color: #c2185b;\">pink-700</li>\n      <li class=\"color\" style=\"background-color: #ad1457;\">pink-800</li>\n      <li class=\"color\" style=\"background-color: #880e4f;\">pink-900</li>\n      </ul>\n      </section>\n\n      <section class=\"color-group\">\n      <ul>\n      <li class=\"color main-color\" style=\"background-color: #9c27b0;\">purple</li>\n      <li class=\"color dark\" style=\"background-color: #f3e5f5;\">purple-50</li>\n      <li class=\"color dark\" style=\"background-color: #e1bee7;\">purple-100</li>\n      <li class=\"color dark\" style=\"background-color: #ce93d8;\">purple-200</li>\n      <li class=\"color light-strong\" style=\"background-color: #ba68c8;\">purple-300</li>\n      <li class=\"color light-strong\" style=\"background-color: #ab47bc;\">purple-400</li>\n      <li class=\"color\" style=\"background-color: #9c27b0;\">purple-500</li>\n      <li class=\"color\" style=\"background-color: #8e24aa;\">purple-600</li>\n      <li class=\"color\" style=\"background-color: #7b1fa2;\">purple-700</li>\n      <li class=\"color\" style=\"background-color: #6a1b9a;\">purple-800</li>\n      <li class=\"color\" style=\"background-color: #4a148c;\">purple-900</li>\n      </ul>\n      </section>\n\n      <section class=\"color-group\">\n      <ul>\n      <li class=\"color main-color\" style=\"background-color: #673ab7;\">deep-purple</li>\n      <li class=\"color dark\" style=\"background-color: #ede7f6;\">deep-purple-50</li>\n      <li class=\"color dark\" style=\"background-color: #d1c4e9;\">deep-purple-100</li>\n      <li class=\"color dark\" style=\"background-color: #b39ddb;\">deep-purple-200</li>\n      <li class=\"color\" style=\"background-color: #9575cd;\">deep-purple-300</li>\n      <li class=\"color\" style=\"background-color: #7e57c2;\">deep-purple-400</li>\n      <li class=\"color\" style=\"background-color: #673ab7;\">deep-purple-500</li>\n      <li class=\"color\" style=\"background-color: #5e35b1;\">deep-purple-600</li>\n      <li class=\"color\" style=\"background-color: #512da8;\">deep-purple-700</li>\n      <li class=\"color\" style=\"background-color: #4527a0;\">deep-purple-800</li>\n      <li class=\"color\" style=\"background-color: #311b92;\">deep-purple-900</li>\n      </ul>\n      </section>\n\n      <section class=\"color-group\">\n      <ul>\n      <li class=\"color main-color\" style=\"background-color: #3f51b5;\">indigo</li>\n      <li class=\"color dark\" style=\"background-color: #e8eaf6;\">indigo-50</li>\n      <li class=\"color dark\" style=\"background-color: #c5cae9;\">indigo-100</li>\n      <li class=\"color dark\" style=\"background-color: #9fa8da;\">indigo-200</li>\n      <li class=\"color\" style=\"background-color: #7986cb;\">indigo-300</li>\n      <li class=\"color\" style=\"background-color: #5c6bc0;\">indigo-400</li>\n      <li class=\"color\" style=\"background-color: #3f51b5;\">indigo-500</li>\n      <li class=\"color\" style=\"background-color: #3949ab;\">indigo-600</li>\n      <li class=\"color\" style=\"background-color: #303f9f;\">indigo-700</li>\n      <li class=\"color\" style=\"background-color: #283593;\">indigo-800</li>\n      <li class=\"color\" style=\"background-color: #1a237e;\">indigo-900</li>\n      </ul>\n      </section>\n\n      <section class=\"color-group\">\n      <ul>\n      <li class=\"color main-color\" style=\"background-color: #2196F3;\">blue</li>\n      <li class=\"color dark\" style=\"background-color: #e3f2fd;\">blue-50</li>\n      <li class=\"color dark\" style=\"background-color: #bbdefb;\">blue-100</li>\n      <li class=\"color dark\" style=\"background-color: #90caf9;\">blue-200</li>\n      <li class=\"color dark\" style=\"background-color: #64b5f6;\">blue-300</li>\n      <li class=\"color dark\" style=\"background-color: #42a5f5;\">blue-400</li>\n      <li class=\"color light-strong\" style=\"background-color: #2196f3;\">blue-500</li>\n      <li class=\"color\" style=\"background-color: #1e88e5;\">blue-600</li>\n      <li class=\"color\" style=\"background-color: #1976d2;\">blue-700</li>\n      <li class=\"color\" style=\"background-color: #1565c0;\">blue-800</li>\n      <li class=\"color\" style=\"background-color: #0d47a1;\">blue-900</li>\n      </ul>\n      </section>\n\n      <section class=\"color-group\">\n      <ul>\n      <li class=\"color main-color\" style=\"background-color: #03a9f4;\">light-blue</li>\n      <li class=\"color dark\" style=\"background-color: #e1f5fe;\">light-blue-50</li>\n      <li class=\"color dark\" style=\"background-color: #b3e5fc;\">light-blue-100</li>\n      <li class=\"color dark\" style=\"background-color: #81d4fa;\">light-blue-200</li>\n      <li class=\"color dark\" style=\"background-color: #4fc3f7;\">light-blue-300</li>\n      <li class=\"color dark\" style=\"background-color: #29b6f6;\">light-blue-400</li>\n      <li class=\"color dark\" style=\"background-color: #03a9f4;\">light-blue-500</li>\n      <li class=\"color light-strong\" style=\"background-color: #039be5;\">light-blue-600</li>\n      <li class=\"color\" style=\"background-color: #0288d1;\">light-blue-700</li>\n      <li class=\"color\" style=\"background-color: #0277bd;\">light-blue-800</li>\n      <li class=\"color\" style=\"background-color: #01579b;\">light-blue-900</li>\n      </ul>\n      </section>\n\n      <section class=\"color-group\">\n      <ul>\n      <li class=\"color main-color\" style=\"background-color: #00bcd4;\">cyan</li>\n      <li class=\"color dark\" style=\"background-color: #e0f7fa;\">cyan-50</li>\n      <li class=\"color dark\" style=\"background-color: #b2ebf2;\">cyan-100</li>\n      <li class=\"color dark\" style=\"background-color: #80deea;\">cyan-200</li>\n      <li class=\"color dark\" style=\"background-color: #4dd0e1;\">cyan-300</li>\n      <li class=\"color dark\" style=\"background-color: #26c6da;\">cyan-400</li>\n      <li class=\"color dark\" style=\"background-color: #00bcd4;\">cyan-500</li>\n      <li class=\"color dark\" style=\"background-color: #00acc1;\">cyan-600</li>\n      <li class=\"color\" style=\"background-color: #0097a7;\">cyan-700</li>\n      <li class=\"color\" style=\"background-color: #00838f;\">cyan-800</li>\n      <li class=\"color\" style=\"background-color: #006064;\">cyan-900</li>\n      </ul>\n      </section>\n\n      <section class=\"color-group\">\n      <ul>\n      <li class=\"color main-color\" style=\"background-color: #009688;\">teal</li>\n      <li class=\"color dark\" style=\"background-color: #e0f2f1;\">teal-50</li>\n      <li class=\"color dark\" style=\"background-color: #b2dfdb;\">teal-100</li>\n      <li class=\"color dark\" style=\"background-color: #80cbc4;\">teal-200</li>\n      <li class=\"color dark\" style=\"background-color: #4db6ac;\">teal-300</li>\n      <li class=\"color dark\" style=\"background-color: #26a69a;\">teal-400</li>\n      <li class=\"color light-strong\" style=\"background-color: #009688;\">teal-500</li>\n      <li class=\"color light-strong\" style=\"background-color: #00897b;\">teal-600</li>\n      <li class=\"color light-strong\" style=\"background-color: #00796b;\">teal-700</li>\n      <li class=\"color\" style=\"background-color: #00695c;\">teal-800</li>\n      <li class=\"color\" style=\"background-color: #004d40;\">teal-900</li>\n      </ul>\n      </section>\n\n      <section class=\"color-group\">\n      <ul>\n      <li class=\"color main-color\" style=\"background-color: #4caf50;\">green</li>\n      <li class=\"color dark\" style=\"background-color: #e8f5e9;\">green-50</li>\n      <li class=\"color dark\" style=\"background-color: #c8e6c9;\">green-100</li>\n      <li class=\"color dark\" style=\"background-color: #a5d6a7;\">green-200</li>\n      <li class=\"color dark\" style=\"background-color: #81c784;\">green-300</li>\n      <li class=\"color dark\" style=\"background-color: #66bb6a;\">green-400</li>\n      <li class=\"color dark\" style=\"background-color: #4caf50;\">green-500</li>\n      <li class=\"color light-strong\" style=\"background-color: #43a047;\">green-600</li>\n      <li class=\"color\" style=\"background-color: #388e3c;\">green-700</li>\n      <li class=\"color\" style=\"background-color: #2e7d32;\">green-800</li>\n      <li class=\"color\" style=\"background-color: #1b5e20;\">green-900</li>\n      </ul>\n      </section>\n\n      <section class=\"color-group\">\n      <ul>\n      <li class=\"color main-color\" style=\"background-color: #8bc34a;\">light-green</li>\n      <li class=\"color dark\" style=\"background-color: #f1f8e9;\">light-green-50</li>\n      <li class=\"color dark\" style=\"background-color: #dcedc8;\">light-green-100</li>\n      <li class=\"color dark\" style=\"background-color: #c5e1a5;\">light-green-200</li>\n      <li class=\"color dark\" style=\"background-color: #aed581;\">light-green-300</li>\n      <li class=\"color dark\" style=\"background-color: #9ccc65;\">light-green-400</li>\n      <li class=\"color dark\" style=\"background-color: #8bc34a;\">light-green-500</li>\n      <li class=\"color dark\" style=\"background-color: #7cb342;\">light-green-600</li>\n      <li class=\"color light-strong\" style=\"background-color: #689f38;\">light-green-700</li>\n      <li class=\"color\" style=\"background-color: #558b2f;\">light-green-800</li>\n      <li class=\"color\" style=\"background-color: #33691e;\">light-green-900</li>\n      </ul>\n      </section>\n      <section class=\"color-group\">\n      <ul>\n      <li class=\"color main-color\" style=\"background-color: #cddc39;\">lime</li>\n      <li class=\"color dark\" style=\"background-color: #f9fbe7;\">lime-50</li>\n      <li class=\"color dark\" style=\"background-color: #f0f4c3;\">lime-100</li>\n      <li class=\"color dark\" style=\"background-color: #e6ee9c;\">lime-200</li>\n      <li class=\"color dark\" style=\"background-color: #dce775;\">lime-300</li>\n      <li class=\"color dark\" style=\"background-color: #d4e157;\">lime-400</li>\n      <li class=\"color dark\" style=\"background-color: #cddc39;\">lime-500</li>\n      <li class=\"color dark\" style=\"background-color: #c0ca33;\">lime-600</li>\n      <li class=\"color dark\" style=\"background-color: #afb42b;\">lime-700</li>\n      <li class=\"color dark\" style=\"background-color: #9e9d24;\">lime-800</li>\n      <li class=\"color\" style=\"background-color: #827717;\">lime-900</li>\n      </ul>\n      </section>\n\n      <section class=\"color-group\">\n      <ul>\n      <li class=\"color main-color\" style=\"background-color: #ffeb3b;\">yellow</li>\n      <li class=\"color dark\" style=\"background-color: #fffde7;\">yellow-50</li>\n      <li class=\"color dark\" style=\"background-color: #fff9c4;\">yellow-100</li>\n      <li class=\"color dark\" style=\"background-color: #fff59d;\">yellow-200</li>\n      <li class=\"color dark\" style=\"background-color: #fff176;\">yellow-300</li>\n      <li class=\"color dark\" style=\"background-color: #ffee58;\">yellow-400</li>\n      <li class=\"color dark\" style=\"background-color: #ffeb3b;\">yellow-500</li>\n      <li class=\"color dark\" style=\"background-color: #fdd835;\">yellow-600</li>\n      <li class=\"color dark\" style=\"background-color: #fbc02d;\">yellow-700</li>\n      <li class=\"color dark\" style=\"background-color: #f9a825;\">yellow-800</li>\n      <li class=\"color dark\" style=\"background-color: #f57f17;\">yellow-900</li>\n      </ul>\n      </section>\n\n      <section class=\"color-group\">\n      <ul>\n      <li class=\"color main-color\" style=\"background-color: #ffc107;\">amber</li>\n      <li class=\"color dark\" style=\"background-color: #fff8e1;\">amber-50</li>\n      <li class=\"color dark\" style=\"background-color: #ffecb3;\">amber-100</li>\n      <li class=\"color dark\" style=\"background-color: #ffe082;\">amber-200</li>\n      <li class=\"color dark\" style=\"background-color: #ffd54f;\">amber-300</li>\n      <li class=\"color dark\" style=\"background-color: #ffca28;\">amber-400</li>\n      <li class=\"color dark\" style=\"background-color: #ffc107;\">amber-500</li>\n      <li class=\"color dark\" style=\"background-color: #ffb300;\">amber-600</li>\n      <li class=\"color dark\" style=\"background-color: #ffa000;\">amber-700</li>\n      <li class=\"color dark\" style=\"background-color: #ff8f00;\">amber-800</li>\n      <li class=\"color dark\" style=\"background-color: #ff6f00;\">amber-900</li>\n      </ul>\n      </section>\n\n      <section class=\"color-group\">\n      <ul>\n      <li class=\"color main-color\" style=\"background-color: #ff9800;\">orange</li>\n      <li class=\"color dark\" style=\"background-color: #fff3e0;\">orange-50</li>\n      <li class=\"color dark\" style=\"background-color: #ffe0b2;\">orange-100</li>\n      <li class=\"color dark\" style=\"background-color: #ffcc80;\">orange-200</li>\n      <li class=\"color dark\" style=\"background-color: #ffb74d;\">orange-300</li>\n      <li class=\"color dark\" style=\"background-color: #ffa726;\">orange-400</li>\n      <li class=\"color dark\" style=\"background-color: #ff9800;\">orange-500</li>\n      <li class=\"color dark\" style=\"background-color: #fb8c00;\">orange-600</li>\n      <li class=\"color dark\" style=\"background-color: #f57c00;\">orange-700</li>\n      <li class=\"color light-strong\" style=\"background-color: #ef6c00;\">orange-800</li>\n      <li class=\"color\" style=\"background-color: #e65100;\">orange-900</li>\n      </ul>\n      </section>\n\n      <section class=\"color-group\">\n      <ul>\n      <li class=\"color main-color\" style=\"background-color: #ff5722;\">deep-orange</li>\n      <li class=\"color dark\" style=\"background-color: #fbe9e7;\">deep-orange-50</li>\n      <li class=\"color dark\" style=\"background-color: #ffccbc;\">deep-orange-100</li>\n      <li class=\"color dark\" style=\"background-color: #ffab91;\">deep-orange-200</li>\n      <li class=\"color dark\" style=\"background-color: #ff8a65;\">deep-orange-300</li>\n      <li class=\"color dark\" style=\"background-color: #ff7043;\">deep-orange-400</li>\n      <li class=\"color light-strong\" style=\"background-color: #ff5722;\">deep-orange-500</li>\n      <li class=\"color\" style=\"background-color: #f4511e;\">deep-orange-600</li>\n      <li class=\"color\" style=\"background-color: #e64a19;\">deep-orange-700</li>\n      <li class=\"color\" style=\"background-color: #d84315;\">deep-orange-800</li>\n      <li class=\"color\" style=\"background-color: #bf360c;\">deep-orange-900</li>\n      </ul>\n      </section>\n\n      <section class=\"color-group\">\n      <ul>\n      <li class=\"color main-color\" style=\"background-color: #795548;\">brown</li>\n      <li class=\"color dark\" style=\"background-color: #efebe9;\">brown-50</li>\n      <li class=\"color dark\" style=\"background-color: #d7ccc8;\">brown-100</li>\n      <li class=\"color dark\" style=\"background-color: #bcaaa4;\">brown-200</li>\n      <li class=\"color light-strong\" style=\"background-color: #a1887f;\">brown-300</li>\n      <li class=\"color\" style=\"background-color: #8d6e63;\">brown-400</li>\n      <li class=\"color\" style=\"background-color: #795548;\">brown-500</li>\n      <li class=\"color\" style=\"background-color: #6d4c41;\">brown-600</li>\n      <li class=\"color\" style=\"background-color: #5d4037;\">brown-700</li>\n      <li class=\"color\" style=\"background-color: #4e342e;\">brown-800</li>\n      <li class=\"color\" style=\"background-color: #3e2723;\">brown-900</li>\n      </ul>\n      </section>\n\n      <section class=\"color-group\">\n      <ul>\n      <li class=\"color main-color\" style=\"background-color: #9e9e9e;\">grey</li>\n      <li class=\"color dark\" style=\"background-color: #fafafa;\">grey-50</li>\n      <li class=\"color dark\" style=\"background-color: #f5f5f5;\">grey-100</li>\n      <li class=\"color dark\" style=\"background-color: #eeeeee;\">grey-200</li>\n      <li class=\"color dark\" style=\"background-color: #e0e0e0;\">grey-300</li>\n      <li class=\"color dark\" style=\"background-color: #bdbdbd;\">grey-400</li>\n      <li class=\"color dark\" style=\"background-color: #9e9e9e;\">grey-500</li>\n      <li class=\"color\" style=\"background-color: #757575;\">grey-600</li>\n      <li class=\"color\" style=\"background-color: #616161;\">grey-700</li>\n      <li class=\"color\" style=\"background-color: #424242;\">grey-800</li>\n      <li class=\"color\" style=\"background-color: #212121;\">grey-900</li>\n      </ul>\n      </section>\n\n      <section class=\"color-group\">\n      <ul>\n      <li class=\"color main-color\" style=\"background-color: #607d8b;\">blue-grey</li>\n      <li class=\"color dark\" style=\"background-color: #eceff1;\">blue-grey-50</li>\n      <li class=\"color dark\" style=\"background-color: #cfd8dc;\">blue-grey-100</li>\n      <li class=\"color dark\" style=\"background-color: #b0bec5;\">blue-grey-200</li>\n      <li class=\"color dark\" style=\"background-color: #90a4ae;\">blue-grey-300</li>\n      <li class=\"color light-strong\" style=\"background-color: #78909c;\">blue-grey-400</li>\n      <li class=\"color\" style=\"background-color: #607d8b;\">blue-grey-500</li>\n      <li class=\"color\" style=\"background-color: #546e7a;\">blue-grey-600</li>\n      <li class=\"color\" style=\"background-color: #455a64;\">blue-grey-700</li>\n      <li class=\"color\" style=\"background-color: #37474f;\">blue-grey-800</li>\n      <li class=\"color\" style=\"background-color: #263238;\">blue-grey-900</li>\n      </ul>\n      </section>\n\n      <section class=\"color-group\" style=\"background-image:url(../assets/img/roller.jpg);background-size:cover\">\n      <ul>\n      <li class=\"color\" style=\"background-color: #000000;\">black</li>\n      <li class=\"color dark\" style=\"background-color: #ffffff;\">white</li>\n      <li class=\"color\" style=\"background-color: rgba(0,0,0,0.9);\">black-opacity-90</li>\n      <li class=\"color dark\" style=\"background-color: rgba(255,255,255,0.9);\">white-opacity-90</li>\n      <li class=\"color\" style=\"background-color: rgba(0,0,0,0.8);\">black-opacity-70</li>\n      <li class=\"color dark\" style=\"background-color: rgba(255,255,255,0.7);\">white-opacity-70</li>\n      <li class=\"color\" style=\"background-color: rgba(0,0,0,0.7);\">black-opacity-50</li>\n      <li class=\"color dark\" style=\"background-color: rgba(255,255,255,0.5);\">white-opacity-50</li>\n      <li class=\"color\" style=\"background-color: rgba(0,0,0,0.6);\">black-opacity-30</li>\n      <li class=\"color dark\" style=\"background-color: rgba(255,255,255,0.3);\">white-opacity-30</li>\n      <li class=\"color\" style=\"background-color: rgba(0,0,0,0.5);\">black-opacity-10</li>\n      <li class=\"color dark\" style=\"background-color: rgba(255,255,255,0.1);\">white-opacity-10</li>\n      </ul>\n      </section>\n    </div>\n    <!-- DONE -->\n    <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n    <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n    <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n    <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "base/component.json",
    "content": "{\n  \"name\":\"base\",\n  \"dependencies\": [],\n  \"files\":[\n    \"fonts/ionicons.woff\",\n    \"fonts/roboto.woff2\",\n    \"fonts/robotoblack.woff2\",\n    \"fonts/robotolight.woff2\"\n  ]\n}\n"
  },
  {
    "path": "base/font.css",
    "content": "@font-face {\r\n    font-family: Roboto;\r\n    font-style: normal;\r\n    font-weight: 300;\r\n    src: local('Roboto Light'), local('Roboto-Light'), url(fonts/robotolight.woff2) format('woff2');\r\n    unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F\r\n}\r\n@font-face {\r\n    font-family: Roboto;\r\n    font-style: normal;\r\n    font-weight: 400;\r\n    src: local('Roboto'), local('Roboto-Regular'), url(fonts/sTdaA6j0Psb920Vjv-mrzH-_kf6ByYO6CLYdB4HQE-Y.woff2) format('woff2');\r\n    unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F\r\n}\r\n@font-face {\r\n    font-family: Roboto;\r\n    font-style: normal;\r\n    font-weight: 900;\r\n    src: local('Roboto Black'), local('Roboto-Black'), url(fonts/robotoblack.woff2) format('woff2');\r\n    unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F\r\n}\r\n"
  },
  {
    "path": "base/fonts.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title></title>\n    <link href=\"https://fonts.googleapis.com/css?family=Dosis|Raleway:400,700|Roboto:300,400,900,\" rel=\"stylesheet\">\n    <link href=\"https://fonts.googleapis.com/css?family=Monoton|Open+Sans:300\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n    <link rel=\"stylesheet\" href=\"reset.css\">\n    <link rel=\"stylesheet\" href=\"mobileui.css\">\n    <link rel=\"stylesheet\" href=\"colors.css\">\n    <link rel=\"stylesheet\" href=\"icons.css\">\n    <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n    <style>\n      .content { margin-left:50px}\n    </style>\n  </head>\n  <body class=\"content\">\n    <!-- BEGIN -->\n    <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">Fonts</h2>\n    <p>\n      One of MobileUI's primary concerns is UX Design, so we offer a easy way to install new fonts in your web apps.\n    </p>\n    <p>\n      You can install any source in the <a href=\"https://fonts.google.com\" target=\"_blank\">Google Fonts</a> repository.\n      Example, I want to install the fonts <a href=\"https://fonts.google.com/?selection.family=Monoton|Open+Sans:300&query=open\" target=\"_blank\">Open Sans light and Monoton</a>,\n      my command would look like this:\n    </p>\n    <pre>mobileui install font \"Monoton|Open+Sans:300\"</pre>\n<textarea class=\"bind-code\" mode=\"text/html\">\n<div class=\"blue align-center padding\">\n  <h1 style=\"font-family: 'Monoton', cursive;font-size:50px\">\n    Google Fonts\n  </h1>\n  <h2 style=\"font-family: 'Open Sans', sans-serif;font-size:22px\">\n    Making the web more beautiful, fast, and open through great typography\n  </h2>\n</div></textarea>\n\n    <!-- DONE -->\n    <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n    <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n    <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n    <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "base/icons.css",
    "content": "@font-face {\r\n    font-family: Ionicons;\r\n    src: url(fonts/ionicons.woff?v=2.0.0) format(\"woff\");\r\n    font-weight: 400;\r\n    font-style: normal\r\n}\r\ni.icon {\r\n  background: none !important;\r\n}\r\n.ion,\r\n.ion-alert-circled:before,\r\n.ion-alert:before,\r\n.ion-android-add-circle:before,\r\n.ion-android-add:before,\r\n.ion-android-alarm-clock:before,\r\n.ion-android-alert:before,\r\n.ion-android-apps:before,\r\n.ion-android-archive:before,\r\n.ion-android-arrow-back:before,\r\n.ion-android-arrow-down:before,\r\n.ion-android-arrow-dropdown-circle:before,\r\n.ion-android-arrow-dropdown:before,\r\n.ion-android-arrow-dropleft-circle:before,\r\n.ion-android-arrow-dropleft:before,\r\n.ion-android-arrow-dropright-circle:before,\r\n.ion-android-arrow-dropright:before,\r\n.ion-android-arrow-dropup-circle:before,\r\n.ion-android-arrow-dropup:before,\r\n.ion-android-arrow-forward:before,\r\n.ion-android-arrow-up:before,\r\n.ion-android-attach:before,\r\n.ion-android-bar:before,\r\n.ion-android-bicycle:before,\r\n.ion-android-boat:before,\r\n.ion-android-bookmark:before,\r\n.ion-android-bulb:before,\r\n.ion-android-bus:before,\r\n.ion-android-calendar:before,\r\n.ion-android-call:before,\r\n.ion-android-camera:before,\r\n.ion-android-cancel:before,\r\n.ion-android-car:before,\r\n.ion-android-cart:before,\r\n.ion-android-chat:before,\r\n.ion-android-checkbox-blank:before,\r\n.ion-android-checkbox-outline-blank:before,\r\n.ion-android-checkbox-outline:before,\r\n.ion-android-checkbox:before,\r\n.ion-android-checkmark-circle:before,\r\n.ion-android-clipboard:before,\r\n.ion-android-close:before,\r\n.ion-android-cloud-circle:before,\r\n.ion-android-cloud-done:before,\r\n.ion-android-cloud-outline:before,\r\n.ion-android-cloud:before,\r\n.ion-android-color-palette:before,\r\n.ion-android-compass:before,\r\n.ion-android-contact:before,\r\n.ion-android-contacts:before,\r\n.ion-android-contract:before,\r\n.ion-android-create:before,\r\n.ion-android-delete:before,\r\n.ion-android-desktop:before,\r\n.ion-android-document:before,\r\n.ion-android-done-all:before,\r\n.ion-android-done:before,\r\n.ion-android-download:before,\r\n.ion-android-drafts:before,\r\n.ion-android-exit:before,\r\n.ion-android-expand:before,\r\n.ion-android-favorite-outline:before,\r\n.ion-android-favorite:before,\r\n.ion-android-film:before,\r\n.ion-android-folder-open:before,\r\n.ion-android-folder:before,\r\n.ion-android-funnel:before,\r\n.ion-android-globe:before,\r\n.ion-android-hand:before,\r\n.ion-android-hangout:before,\r\n.ion-android-happy:before,\r\n.ion-android-home:before,\r\n.ion-android-image:before,\r\n.ion-android-laptop:before,\r\n.ion-android-list:before,\r\n.ion-android-locate:before,\r\n.ion-android-lock:before,\r\n.ion-android-mail:before,\r\n.ion-android-map:before,\r\n.ion-android-menu:before,\r\n.ion-android-microphone-off:before,\r\n.ion-android-microphone:before,\r\n.ion-android-more-horizontal:before,\r\n.ion-android-more-vertical:before,\r\n.ion-android-navigate:before,\r\n.ion-android-notifications-none:before,\r\n.ion-android-notifications-off:before,\r\n.ion-android-notifications:before,\r\n.ion-android-open:before,\r\n.ion-android-options:before,\r\n.ion-android-people:before,\r\n.ion-android-person-add:before,\r\n.ion-android-person:before,\r\n.ion-android-phone-landscape:before,\r\n.ion-android-phone-portrait:before,\r\n.ion-android-pin:before,\r\n.ion-android-plane:before,\r\n.ion-android-playstore:before,\r\n.ion-android-print:before,\r\n.ion-android-radio-button-off:before,\r\n.ion-android-radio-button-on:before,\r\n.ion-android-refresh:before,\r\n.ion-android-remove-circle:before,\r\n.ion-android-remove:before,\r\n.ion-android-restaurant:before,\r\n.ion-android-sad:before,\r\n.ion-android-search:before,\r\n.ion-android-send:before,\r\n.ion-android-settings:before,\r\n.ion-android-share-alt:before,\r\n.ion-android-share:before,\r\n.ion-android-star-half:before,\r\n.ion-android-star-outline:before,\r\n.ion-android-star:before,\r\n.ion-android-stopwatch:before,\r\n.ion-android-subway:before,\r\n.ion-android-sunny:before,\r\n.ion-android-sync:before,\r\n.ion-android-textsms:before,\r\n.ion-android-time:before,\r\n.ion-android-train:before,\r\n.ion-android-unlock:before,\r\n.ion-android-upload:before,\r\n.ion-android-volume-down:before,\r\n.ion-android-volume-mute:before,\r\n.ion-android-volume-off:before,\r\n.ion-android-volume-up:before,\r\n.ion-android-walk:before,\r\n.ion-android-warning:before,\r\n.ion-android-watch:before,\r\n.ion-android-wifi:before,\r\n.ion-aperture:before,\r\n.ion-archive:before,\r\n.ion-arrow-down-a:before,\r\n.ion-arrow-down-b:before,\r\n.ion-arrow-down-c:before,\r\n.ion-arrow-expand:before,\r\n.ion-arrow-graph-down-left:before,\r\n.ion-arrow-graph-down-right:before,\r\n.ion-arrow-graph-up-left:before,\r\n.ion-arrow-graph-up-right:before,\r\n.ion-arrow-left-a:before,\r\n.ion-arrow-left-b:before,\r\n.ion-arrow-left-c:before,\r\n.ion-arrow-move:before,\r\n.ion-arrow-resize:before,\r\n.ion-arrow-return-left:before,\r\n.ion-arrow-return-right:before,\r\n.ion-arrow-right-a:before,\r\n.ion-arrow-right-b:before,\r\n.ion-arrow-right-c:before,\r\n.ion-arrow-shrink:before,\r\n.ion-arrow-swap:before,\r\n.ion-arrow-up-a:before,\r\n.ion-arrow-up-b:before,\r\n.ion-arrow-up-c:before,\r\n.ion-asterisk:before,\r\n.ion-at:before,\r\n.ion-backspace-outline:before,\r\n.ion-backspace:before,\r\n.ion-bag:before,\r\n.ion-battery-charging:before,\r\n.ion-battery-empty:before,\r\n.ion-battery-full:before,\r\n.ion-battery-half:before,\r\n.ion-battery-low:before,\r\n.ion-beaker:before,\r\n.ion-beer:before,\r\n.ion-bluetooth:before,\r\n.ion-bonfire:before,\r\n.ion-bookmark:before,\r\n.ion-bowtie:before,\r\n.ion-briefcase:before,\r\n.ion-bug:before,\r\n.ion-calculator:before,\r\n.ion-calendar:before,\r\n.ion-camera:before,\r\n.ion-card:before,\r\n.ion-cash:before,\r\n.ion-chatbox-working:before,\r\n.ion-chatbox:before,\r\n.ion-chatboxes:before,\r\n.ion-chatbubble-working:before,\r\n.ion-chatbubble:before,\r\n.ion-chatbubbles:before,\r\n.ion-checkmark-circled:before,\r\n.ion-checkmark-round:before,\r\n.ion-checkmark:before,\r\n.ion-chevron-down:before,\r\n.ion-chevron-left:before,\r\n.ion-chevron-right:before,\r\n.ion-chevron-up:before,\r\n.ion-clipboard:before,\r\n.ion-clock:before,\r\n.ion-close-circled:before,\r\n.ion-close-round:before,\r\n.ion-close:before,\r\n.ion-closed-captioning:before,\r\n.ion-cloud:before,\r\n.ion-code-download:before,\r\n.ion-code-working:before,\r\n.ion-code:before,\r\n.ion-coffee:before,\r\n.ion-compass:before,\r\n.ion-compose:before,\r\n.ion-connection-bars:before,\r\n.ion-contrast:before,\r\n.ion-crop:before,\r\n.ion-cube:before,\r\n.ion-disc:before,\r\n.ion-document-text:before,\r\n.ion-document:before,\r\n.ion-drag:before,\r\n.ion-earth:before,\r\n.ion-easel:before,\r\n.ion-edit:before,\r\n.ion-egg:before,\r\n.ion-eject:before,\r\n.ion-email-unread:before,\r\n.ion-email:before,\r\n.ion-erlenmeyer-flask-bubbles:before,\r\n.ion-erlenmeyer-flask:before,\r\n.ion-eye-disabled:before,\r\n.ion-eye:before,\r\n.ion-female:before,\r\n.ion-filing:before,\r\n.ion-film-marker:before,\r\n.ion-fireball:before,\r\n.ion-flag:before,\r\n.ion-flame:before,\r\n.ion-flash-off:before,\r\n.ion-flash:before,\r\n.ion-folder:before,\r\n.ion-fork-repo:before,\r\n.ion-fork:before,\r\n.ion-forward:before,\r\n.ion-funnel:before,\r\n.ion-gear-a:before,\r\n.ion-gear-b:before,\r\n.ion-grid:before,\r\n.ion-hammer:before,\r\n.ion-happy-outline:before,\r\n.ion-happy:before,\r\n.ion-headphone:before,\r\n.ion-heart-broken:before,\r\n.ion-heart:before,\r\n.ion-help-buoy:before,\r\n.ion-help-circled:before,\r\n.ion-help:before,\r\n.ion-home:before,\r\n.ion-icecream:before,\r\n.ion-image:before,\r\n.ion-images:before,\r\n.ion-information-circled:before,\r\n.ion-information:before,\r\n.ion-ionic:before,\r\n.ion-ios-alarm-outline:before,\r\n.ion-ios-alarm:before,\r\n.ion-ios-albums-outline:before,\r\n.ion-ios-albums:before,\r\n.ion-ios-americanfootball-outline:before,\r\n.ion-ios-americanfootball:before,\r\n.ion-ios-analytics-outline:before,\r\n.ion-ios-analytics:before,\r\n.ion-ios-arrow-back:before,\r\n.ion-ios-arrow-down:before,\r\n.ion-ios-arrow-forward:before,\r\n.ion-ios-arrow-left:before,\r\n.ion-ios-arrow-right:before,\r\n.ion-ios-arrow-thin-down:before,\r\n.ion-ios-arrow-thin-left:before,\r\n.ion-ios-arrow-thin-right:before,\r\n.ion-ios-arrow-thin-up:before,\r\n.ion-ios-arrow-up:before,\r\n.ion-ios-at-outline:before,\r\n.ion-ios-at:before,\r\n.ion-ios-barcode-outline:before,\r\n.ion-ios-barcode:before,\r\n.ion-ios-baseball-outline:before,\r\n.ion-ios-baseball:before,\r\n.ion-ios-basketball-outline:before,\r\n.ion-ios-basketball:before,\r\n.ion-ios-bell-outline:before,\r\n.ion-ios-bell:before,\r\n.ion-ios-body-outline:before,\r\n.ion-ios-body:before,\r\n.ion-ios-bolt-outline:before,\r\n.ion-ios-bolt:before,\r\n.ion-ios-book-outline:before,\r\n.ion-ios-book:before,\r\n.ion-ios-bookmarks-outline:before,\r\n.ion-ios-bookmarks:before,\r\n.ion-ios-box-outline:before,\r\n.ion-ios-box:before,\r\n.ion-ios-briefcase-outline:before,\r\n.ion-ios-briefcase:before,\r\n.ion-ios-browsers-outline:before,\r\n.ion-ios-browsers:before,\r\n.ion-ios-calculator-outline:before,\r\n.ion-ios-calculator:before,\r\n.ion-ios-calendar-outline:before,\r\n.ion-ios-calendar:before,\r\n.ion-ios-camera-outline:before,\r\n.ion-ios-camera:before,\r\n.ion-ios-cart-outline:before,\r\n.ion-ios-cart:before,\r\n.ion-ios-chatboxes-outline:before,\r\n.ion-ios-chatboxes:before,\r\n.ion-ios-chatbubble-outline:before,\r\n.ion-ios-chatbubble:before,\r\n.ion-ios-checkmark-empty:before,\r\n.ion-ios-checkmark-outline:before,\r\n.ion-ios-checkmark:before,\r\n.ion-ios-circle-filled:before,\r\n.ion-ios-circle-outline:before,\r\n.ion-ios-clock-outline:before,\r\n.ion-ios-clock:before,\r\n.ion-ios-close-empty:before,\r\n.ion-ios-close-outline:before,\r\n.ion-ios-close:before,\r\n.ion-ios-cloud-download-outline:before,\r\n.ion-ios-cloud-download:before,\r\n.ion-ios-cloud-outline:before,\r\n.ion-ios-cloud-upload-outline:before,\r\n.ion-ios-cloud-upload:before,\r\n.ion-ios-cloud:before,\r\n.ion-ios-cloudy-night-outline:before,\r\n.ion-ios-cloudy-night:before,\r\n.ion-ios-cloudy-outline:before,\r\n.ion-ios-cloudy:before,\r\n.ion-ios-cog-outline:before,\r\n.ion-ios-cog:before,\r\n.ion-ios-color-filter-outline:before,\r\n.ion-ios-color-filter:before,\r\n.ion-ios-color-wand-outline:before,\r\n.ion-ios-color-wand:before,\r\n.ion-ios-compose-outline:before,\r\n.ion-ios-compose:before,\r\n.ion-ios-contact-outline:before,\r\n.ion-ios-contact:before,\r\n.ion-ios-copy-outline:before,\r\n.ion-ios-copy:before,\r\n.ion-ios-crop-strong:before,\r\n.ion-ios-crop:before,\r\n.ion-ios-download-outline:before,\r\n.ion-ios-download:before,\r\n.ion-ios-drag:before,\r\n.ion-ios-email-outline:before,\r\n.ion-ios-email:before,\r\n.ion-ios-eye-outline:before,\r\n.ion-ios-eye:before,\r\n.ion-ios-fastforward-outline:before,\r\n.ion-ios-fastforward:before,\r\n.ion-ios-filing-outline:before,\r\n.ion-ios-filing:before,\r\n.ion-ios-film-outline:before,\r\n.ion-ios-film:before,\r\n.ion-ios-flag-outline:before,\r\n.ion-ios-flag:before,\r\n.ion-ios-flame-outline:before,\r\n.ion-ios-flame:before,\r\n.ion-ios-flask-outline:before,\r\n.ion-ios-flask:before,\r\n.ion-ios-flower-outline:before,\r\n.ion-ios-flower:before,\r\n.ion-ios-folder-outline:before,\r\n.ion-ios-folder:before,\r\n.ion-ios-football-outline:before,\r\n.ion-ios-football:before,\r\n.ion-ios-game-controller-a-outline:before,\r\n.ion-ios-game-controller-a:before,\r\n.ion-ios-game-controller-b-outline:before,\r\n.ion-ios-game-controller-b:before,\r\n.ion-ios-gear-outline:before,\r\n.ion-ios-gear:before,\r\n.ion-ios-glasses-outline:before,\r\n.ion-ios-glasses:before,\r\n.ion-ios-grid-view-outline:before,\r\n.ion-ios-grid-view:before,\r\n.ion-ios-heart-outline:before,\r\n.ion-ios-heart:before,\r\n.ion-ios-help-empty:before,\r\n.ion-ios-help-outline:before,\r\n.ion-ios-help:before,\r\n.ion-ios-home-outline:before,\r\n.ion-ios-home:before,\r\n.ion-ios-infinite-outline:before,\r\n.ion-ios-infinite:before,\r\n.ion-ios-information-empty:before,\r\n.ion-ios-information-outline:before,\r\n.ion-ios-information:before,\r\n.ion-ios-ionic-outline:before,\r\n.ion-ios-keypad-outline:before,\r\n.ion-ios-keypad:before,\r\n.ion-ios-lightbulb-outline:before,\r\n.ion-ios-lightbulb:before,\r\n.ion-ios-list-outline:before,\r\n.ion-ios-list:before,\r\n.ion-ios-location-outline:before,\r\n.ion-ios-location:before,\r\n.ion-ios-locked-outline:before,\r\n.ion-ios-locked:before,\r\n.ion-ios-loop-strong:before,\r\n.ion-ios-loop:before,\r\n.ion-ios-medical-outline:before,\r\n.ion-ios-medical:before,\r\n.ion-ios-medkit-outline:before,\r\n.ion-ios-medkit:before,\r\n.ion-ios-mic-off:before,\r\n.ion-ios-mic-outline:before,\r\n.ion-ios-mic:before,\r\n.ion-ios-minus-empty:before,\r\n.ion-ios-minus-outline:before,\r\n.ion-ios-minus:before,\r\n.ion-ios-monitor-outline:before,\r\n.ion-ios-monitor:before,\r\n.ion-ios-moon-outline:before,\r\n.ion-ios-moon:before,\r\n.ion-ios-more-outline:before,\r\n.ion-ios-more:before,\r\n.ion-ios-musical-note:before,\r\n.ion-ios-musical-notes:before,\r\n.ion-ios-navigate-outline:before,\r\n.ion-ios-navigate:before,\r\n.ion-ios-nutrition-outline:before,\r\n.ion-ios-nutrition:before,\r\n.ion-ios-paper-outline:before,\r\n.ion-ios-paper:before,\r\n.ion-ios-paperplane-outline:before,\r\n.ion-ios-paperplane:before,\r\n.ion-ios-partlysunny-outline:before,\r\n.ion-ios-partlysunny:before,\r\n.ion-ios-pause-outline:before,\r\n.ion-ios-pause:before,\r\n.ion-ios-paw-outline:before,\r\n.ion-ios-paw:before,\r\n.ion-ios-people-outline:before,\r\n.ion-ios-people:before,\r\n.ion-ios-person-outline:before,\r\n.ion-ios-person:before,\r\n.ion-ios-personadd-outline:before,\r\n.ion-ios-personadd:before,\r\n.ion-ios-photos-outline:before,\r\n.ion-ios-photos:before,\r\n.ion-ios-pie-outline:before,\r\n.ion-ios-pie:before,\r\n.ion-ios-pint-outline:before,\r\n.ion-ios-pint:before,\r\n.ion-ios-play-outline:before,\r\n.ion-ios-play:before,\r\n.ion-ios-plus-empty:before,\r\n.ion-ios-plus-outline:before,\r\n.ion-ios-plus:before,\r\n.ion-ios-pricetag-outline:before,\r\n.ion-ios-pricetag:before,\r\n.ion-ios-pricetags-outline:before,\r\n.ion-ios-pricetags:before,\r\n.ion-ios-printer-outline:before,\r\n.ion-ios-printer:before,\r\n.ion-ios-pulse-strong:before,\r\n.ion-ios-pulse:before,\r\n.ion-ios-rainy-outline:before,\r\n.ion-ios-rainy:before,\r\n.ion-ios-recording-outline:before,\r\n.ion-ios-recording:before,\r\n.ion-ios-redo-outline:before,\r\n.ion-ios-redo:before,\r\n.ion-ios-refresh-empty:before,\r\n.ion-ios-refresh-outline:before,\r\n.ion-ios-refresh:before,\r\n.ion-ios-reload:before,\r\n.ion-ios-reverse-camera-outline:before,\r\n.ion-ios-reverse-camera:before,\r\n.ion-ios-rewind-outline:before,\r\n.ion-ios-rewind:before,\r\n.ion-ios-rose-outline:before,\r\n.ion-ios-rose:before,\r\n.ion-ios-search-strong:before,\r\n.ion-ios-search:before,\r\n.ion-ios-settings-strong:before,\r\n.ion-ios-settings:before,\r\n.ion-ios-shuffle-strong:before,\r\n.ion-ios-shuffle:before,\r\n.ion-ios-skipbackward-outline:before,\r\n.ion-ios-skipbackward:before,\r\n.ion-ios-skipforward-outline:before,\r\n.ion-ios-skipforward:before,\r\n.ion-ios-snowy:before,\r\n.ion-ios-speedometer-outline:before,\r\n.ion-ios-speedometer:before,\r\n.ion-ios-star-half:before,\r\n.ion-ios-star-outline:before,\r\n.ion-ios-star:before,\r\n.ion-ios-stopwatch-outline:before,\r\n.ion-ios-stopwatch:before,\r\n.ion-ios-sunny-outline:before,\r\n.ion-ios-sunny:before,\r\n.ion-ios-telephone-outline:before,\r\n.ion-ios-telephone:before,\r\n.ion-ios-tennisball-outline:before,\r\n.ion-ios-tennisball:before,\r\n.ion-ios-thunderstorm-outline:before,\r\n.ion-ios-thunderstorm:before,\r\n.ion-ios-time-outline:before,\r\n.ion-ios-time:before,\r\n.ion-ios-timer-outline:before,\r\n.ion-ios-timer:before,\r\n.ion-ios-toggle-outline:before,\r\n.ion-ios-toggle:before,\r\n.ion-ios-trash-outline:before,\r\n.ion-ios-trash:before,\r\n.ion-ios-undo-outline:before,\r\n.ion-ios-undo:before,\r\n.ion-ios-unlocked-outline:before,\r\n.ion-ios-unlocked:before,\r\n.ion-ios-upload-outline:before,\r\n.ion-ios-upload:before,\r\n.ion-ios-videocam-outline:before,\r\n.ion-ios-videocam:before,\r\n.ion-ios-volume-high:before,\r\n.ion-ios-volume-low:before,\r\n.ion-ios-wineglass-outline:before,\r\n.ion-ios-wineglass:before,\r\n.ion-ios-world-outline:before,\r\n.ion-ios-world:before,\r\n.ion-ipad:before,\r\n.ion-iphone:before,\r\n.ion-ipod:before,\r\n.ion-jet:before,\r\n.ion-key:before,\r\n.ion-knife:before,\r\n.ion-laptop:before,\r\n.ion-leaf:before,\r\n.ion-levels:before,\r\n.ion-lightbulb:before,\r\n.ion-link:before,\r\n.ion-load-a:before,\r\n.ion-load-b:before,\r\n.ion-load-c:before,\r\n.ion-load-d:before,\r\n.ion-location:before,\r\n.ion-lock-combination:before,\r\n.ion-locked:before,\r\n.ion-log-in:before,\r\n.ion-log-out:before,\r\n.ion-loop:before,\r\n.ion-magnet:before,\r\n.ion-male:before,\r\n.ion-man:before,\r\n.ion-map:before,\r\n.ion-medkit:before,\r\n.ion-merge:before,\r\n.ion-mic-a:before,\r\n.ion-mic-b:before,\r\n.ion-mic-c:before,\r\n.ion-minus-circled:before,\r\n.ion-minus-round:before,\r\n.ion-minus:before,\r\n.ion-model-s:before,\r\n.ion-monitor:before,\r\n.ion-more:before,\r\n.ion-mouse:before,\r\n.ion-music-note:before,\r\n.ion-navicon-round:before,\r\n.ion-navicon:before,\r\n.ion-navigate:before,\r\n.ion-network:before,\r\n.ion-no-smoking:before,\r\n.ion-nuclear:before,\r\n.ion-outlet:before,\r\n.ion-paintbrush:before,\r\n.ion-paintbucket:before,\r\n.ion-paper-airplane:before,\r\n.ion-paperclip:before,\r\n.ion-pause:before,\r\n.ion-person-add:before,\r\n.ion-person-stalker:before,\r\n.ion-person:before,\r\n.ion-pie-graph:before,\r\n.ion-pin:before,\r\n.ion-pinpoint:before,\r\n.ion-pizza:before,\r\n.ion-plane:before,\r\n.ion-planet:before,\r\n.ion-play:before,\r\n.ion-playstation:before,\r\n.ion-plus-circled:before,\r\n.ion-plus-round:before,\r\n.ion-plus:before,\r\n.ion-podium:before,\r\n.ion-pound:before,\r\n.ion-power:before,\r\n.ion-pricetag:before,\r\n.ion-pricetags:before,\r\n.ion-printer:before,\r\n.ion-pull-request:before,\r\n.ion-qr-scanner:before,\r\n.ion-quote:before,\r\n.ion-radio-waves:before,\r\n.ion-record:before,\r\n.ion-refresh:before,\r\n.ion-reply-all:before,\r\n.ion-reply:before,\r\n.ion-ribbon-a:before,\r\n.ion-ribbon-b:before,\r\n.ion-sad-outline:before,\r\n.ion-sad:before,\r\n.ion-scissors:before,\r\n.ion-search:before,\r\n.ion-settings:before,\r\n.ion-share:before,\r\n.ion-shuffle:before,\r\n.ion-skip-backward:before,\r\n.ion-skip-forward:before,\r\n.ion-social-android-outline:before,\r\n.ion-social-android:before,\r\n.ion-social-angular-outline:before,\r\n.ion-social-angular:before,\r\n.ion-social-apple-outline:before,\r\n.ion-social-apple:before,\r\n.ion-social-bitcoin-outline:before,\r\n.ion-social-bitcoin:before,\r\n.ion-social-buffer-outline:before,\r\n.ion-social-buffer:before,\r\n.ion-social-chrome-outline:before,\r\n.ion-social-chrome:before,\r\n.ion-social-codepen-outline:before,\r\n.ion-social-codepen:before,\r\n.ion-social-css3-outline:before,\r\n.ion-social-css3:before,\r\n.ion-social-designernews-outline:before,\r\n.ion-social-designernews:before,\r\n.ion-social-dribbble-outline:before,\r\n.ion-social-dribbble:before,\r\n.ion-social-dropbox-outline:before,\r\n.ion-social-dropbox:before,\r\n.ion-social-euro-outline:before,\r\n.ion-social-euro:before,\r\n.ion-social-facebook-outline:before,\r\n.ion-social-facebook:before,\r\n.ion-social-foursquare-outline:before,\r\n.ion-social-foursquare:before,\r\n.ion-social-freebsd-devil:before,\r\n.ion-social-github-outline:before,\r\n.ion-social-github:before,\r\n.ion-social-google-outline:before,\r\n.ion-social-google:before,\r\n.ion-social-googleplus-outline:before,\r\n.ion-social-googleplus:before,\r\n.ion-social-hackernews-outline:before,\r\n.ion-social-hackernews:before,\r\n.ion-social-html5-outline:before,\r\n.ion-social-html5:before,\r\n.ion-social-instagram-outline:before,\r\n.ion-social-instagram:before,\r\n.ion-social-javascript-outline:before,\r\n.ion-social-javascript:before,\r\n.ion-social-linkedin-outline:before,\r\n.ion-social-linkedin:before,\r\n.ion-social-markdown:before,\r\n.ion-social-nodejs:before,\r\n.ion-social-octocat:before,\r\n.ion-social-pinterest-outline:before,\r\n.ion-social-pinterest:before,\r\n.ion-social-python:before,\r\n.ion-social-reddit-outline:before,\r\n.ion-social-reddit:before,\r\n.ion-social-rss-outline:before,\r\n.ion-social-rss:before,\r\n.ion-social-sass:before,\r\n.ion-social-skype-outline:before,\r\n.ion-social-skype:before,\r\n.ion-social-snapchat-outline:before,\r\n.ion-social-snapchat:before,\r\n.ion-social-tumblr-outline:before,\r\n.ion-social-tumblr:before,\r\n.ion-social-tux:before,\r\n.ion-social-twitch-outline:before,\r\n.ion-social-twitch:before,\r\n.ion-social-twitter-outline:before,\r\n.ion-social-twitter:before,\r\n.ion-social-usd-outline:before,\r\n.ion-social-usd:before,\r\n.ion-social-vimeo-outline:before,\r\n.ion-social-vimeo:before,\r\n.ion-social-whatsapp-outline:before,\r\n.ion-social-whatsapp:before,\r\n.ion-social-windows-outline:before,\r\n.ion-social-windows:before,\r\n.ion-social-wordpress-outline:before,\r\n.ion-social-wordpress:before,\r\n.ion-social-yahoo-outline:before,\r\n.ion-social-yahoo:before,\r\n.ion-social-yen-outline:before,\r\n.ion-social-yen:before,\r\n.ion-social-youtube-outline:before,\r\n.ion-social-youtube:before,\r\n.ion-soup-can-outline:before,\r\n.ion-soup-can:before,\r\n.ion-speakerphone:before,\r\n.ion-speedometer:before,\r\n.ion-spoon:before,\r\n.ion-star:before,\r\n.ion-stats-bars:before,\r\n.ion-steam:before,\r\n.ion-stop:before,\r\n.ion-thermometer:before,\r\n.ion-thumbsdown:before,\r\n.ion-thumbsup:before,\r\n.ion-toggle-filled:before,\r\n.ion-toggle:before,\r\n.ion-transgender:before,\r\n.ion-trash-a:before,\r\n.ion-trash-b:before,\r\n.ion-trophy:before,\r\n.ion-tshirt-outline:before,\r\n.ion-tshirt:before,\r\n.ion-umbrella:before,\r\n.ion-university:before,\r\n.ion-unlocked:before,\r\n.ion-upload:before,\r\n.ion-usb:before,\r\n.ion-videocamera:before,\r\n.ion-volume-high:before,\r\n.ion-volume-low:before,\r\n.ion-volume-medium:before,\r\n.ion-volume-mute:before,\r\n.ion-wand:before,\r\n.ion-waterdrop:before,\r\n.ion-wifi:before,\r\n.ion-wineglass:before,\r\n.ion-woman:before,\r\n.ion-wrench:before,\r\n.ion-xbox:before,\r\n.ionicons {\r\n    display: inline-block;\r\n    font-family: Ionicons;\r\n    speak: none;\r\n    font-style: normal;\r\n    font-weight: 400;\r\n    font-variant: normal;\r\n    text-transform: none;\r\n    text-rendering: auto;\r\n    line-height: 1;\r\n    -webkit-font-smoothing: antialiased;\r\n    -moz-osx-font-smoothing: grayscale;\r\n    min-width: 22px;\r\n    text-align: center;\r\n}\r\n\r\n.ion-alert:before {\r\n    content: \"\\f101\"\r\n}\r\n\r\n.ion-alert-circled:before {\r\n    content: \"\\f100\"\r\n}\r\n\r\n.ion-android-add:before {\r\n    content: \"\\f2c7\"\r\n}\r\n\r\n.ion-android-add-circle:before {\r\n    content: \"\\f359\"\r\n}\r\n\r\n.ion-android-alarm-clock:before {\r\n    content: \"\\f35a\"\r\n}\r\n\r\n.ion-android-alert:before {\r\n    content: \"\\f35b\"\r\n}\r\n\r\n.ion-android-apps:before {\r\n    content: \"\\f35c\"\r\n}\r\n\r\n.ion-android-archive:before {\r\n    content: \"\\f2c9\"\r\n}\r\n\r\n.ion-android-arrow-back:before {\r\n    content: \"\\f2ca\"\r\n}\r\n\r\n.ion-android-arrow-down:before {\r\n    content: \"\\f35d\"\r\n}\r\n\r\n.ion-android-arrow-dropdown:before {\r\n    content: \"\\f35f\"\r\n}\r\n\r\n.ion-android-arrow-dropdown-circle:before {\r\n    content: \"\\f35e\"\r\n}\r\n\r\n.ion-android-arrow-dropleft:before {\r\n    content: \"\\f361\"\r\n}\r\n\r\n.ion-android-arrow-dropleft-circle:before {\r\n    content: \"\\f360\"\r\n}\r\n\r\n.ion-android-arrow-dropright:before {\r\n    content: \"\\f363\"\r\n}\r\n\r\n.ion-android-arrow-dropright-circle:before {\r\n    content: \"\\f362\"\r\n}\r\n\r\n.ion-android-arrow-dropup:before {\r\n    content: \"\\f365\"\r\n}\r\n\r\n.ion-android-arrow-dropup-circle:before {\r\n    content: \"\\f364\"\r\n}\r\n\r\n.ion-android-arrow-forward:before {\r\n    content: \"\\f30f\"\r\n}\r\n\r\n.ion-android-arrow-up:before {\r\n    content: \"\\f366\"\r\n}\r\n\r\n.ion-android-attach:before {\r\n    content: \"\\f367\"\r\n}\r\n\r\n.ion-android-bar:before {\r\n    content: \"\\f368\"\r\n}\r\n\r\n.ion-android-bicycle:before {\r\n    content: \"\\f369\"\r\n}\r\n\r\n.ion-android-boat:before {\r\n    content: \"\\f36a\"\r\n}\r\n\r\n.ion-android-bookmark:before {\r\n    content: \"\\f36b\"\r\n}\r\n\r\n.ion-android-bulb:before {\r\n    content: \"\\f36c\"\r\n}\r\n\r\n.ion-android-bus:before {\r\n    content: \"\\f36d\"\r\n}\r\n\r\n.ion-android-calendar:before {\r\n    content: \"\\f2d1\"\r\n}\r\n\r\n.ion-android-call:before {\r\n    content: \"\\f2d2\"\r\n}\r\n\r\n.ion-android-camera:before {\r\n    content: \"\\f2d3\"\r\n}\r\n\r\n.ion-android-cancel:before {\r\n    content: \"\\f36e\"\r\n}\r\n\r\n.ion-android-car:before {\r\n    content: \"\\f36f\"\r\n}\r\n\r\n.ion-android-cart:before {\r\n    content: \"\\f370\"\r\n}\r\n\r\n.ion-android-chat:before {\r\n    content: \"\\f2d4\"\r\n}\r\n\r\n.ion-android-checkbox:before {\r\n    content: \"\\f374\"\r\n}\r\n\r\n.ion-android-checkbox-blank:before {\r\n    content: \"\\f371\"\r\n}\r\n\r\n.ion-android-checkbox-outline:before {\r\n    content: \"\\f373\"\r\n}\r\n\r\n.ion-android-checkbox-outline-blank:before {\r\n    content: \"\\f372\"\r\n}\r\n\r\n.ion-android-checkmark-circle:before {\r\n    content: \"\\f375\"\r\n}\r\n\r\n.ion-android-clipboard:before {\r\n    content: \"\\f376\"\r\n}\r\n\r\n.ion-android-close:before {\r\n    content: \"\\f2d7\"\r\n}\r\n\r\n.ion-android-cloud:before {\r\n    content: \"\\f37a\"\r\n}\r\n\r\n.ion-android-cloud-circle:before {\r\n    content: \"\\f377\"\r\n}\r\n\r\n.ion-android-cloud-done:before {\r\n    content: \"\\f378\"\r\n}\r\n\r\n.ion-android-cloud-outline:before {\r\n    content: \"\\f379\"\r\n}\r\n\r\n.ion-android-color-palette:before {\r\n    content: \"\\f37b\"\r\n}\r\n\r\n.ion-android-compass:before {\r\n    content: \"\\f37c\"\r\n}\r\n\r\n.ion-android-contact:before {\r\n    content: \"\\f2d8\"\r\n}\r\n\r\n.ion-android-contacts:before {\r\n    content: \"\\f2d9\"\r\n}\r\n\r\n.ion-android-contract:before {\r\n    content: \"\\f37d\"\r\n}\r\n\r\n.ion-android-create:before {\r\n    content: \"\\f37e\"\r\n}\r\n\r\n.ion-android-delete:before {\r\n    content: \"\\f37f\"\r\n}\r\n\r\n.ion-android-desktop:before {\r\n    content: \"\\f380\"\r\n}\r\n\r\n.ion-android-document:before {\r\n    content: \"\\f381\"\r\n}\r\n\r\n.ion-android-done:before {\r\n    content: \"\\f383\"\r\n}\r\n\r\n.ion-android-done-all:before {\r\n    content: \"\\f382\"\r\n}\r\n\r\n.ion-android-download:before {\r\n    content: \"\\f2dd\"\r\n}\r\n\r\n.ion-android-drafts:before {\r\n    content: \"\\f384\"\r\n}\r\n\r\n.ion-android-exit:before {\r\n    content: \"\\f385\"\r\n}\r\n\r\n.ion-android-expand:before {\r\n    content: \"\\f386\"\r\n}\r\n\r\n.ion-android-favorite:before {\r\n    content: \"\\f388\"\r\n}\r\n\r\n.ion-android-favorite-outline:before {\r\n    content: \"\\f387\"\r\n}\r\n\r\n.ion-android-film:before {\r\n    content: \"\\f389\"\r\n}\r\n\r\n.ion-android-folder:before {\r\n    content: \"\\f2e0\"\r\n}\r\n\r\n.ion-android-folder-open:before {\r\n    content: \"\\f38a\"\r\n}\r\n\r\n.ion-android-funnel:before {\r\n    content: \"\\f38b\"\r\n}\r\n\r\n.ion-android-globe:before {\r\n    content: \"\\f38c\"\r\n}\r\n\r\n.ion-android-hand:before {\r\n    content: \"\\f2e3\"\r\n}\r\n\r\n.ion-android-hangout:before {\r\n    content: \"\\f38d\"\r\n}\r\n\r\n.ion-android-happy:before {\r\n    content: \"\\f38e\"\r\n}\r\n\r\n.ion-android-home:before {\r\n    content: \"\\f38f\"\r\n}\r\n\r\n.ion-android-image:before {\r\n    content: \"\\f2e4\"\r\n}\r\n\r\n.ion-android-laptop:before {\r\n    content: \"\\f390\"\r\n}\r\n\r\n.ion-android-list:before {\r\n    content: \"\\f391\"\r\n}\r\n\r\n.ion-android-locate:before {\r\n    content: \"\\f2e9\"\r\n}\r\n\r\n.ion-android-lock:before {\r\n    content: \"\\f392\"\r\n}\r\n\r\n.ion-android-mail:before {\r\n    content: \"\\f2eb\"\r\n}\r\n\r\n.ion-android-map:before {\r\n    content: \"\\f393\"\r\n}\r\n\r\n.ion-android-menu:before {\r\n    content: \"\\f394\"\r\n}\r\n\r\n.ion-android-microphone:before {\r\n    content: \"\\f2ec\"\r\n}\r\n\r\n.ion-android-microphone-off:before {\r\n    content: \"\\f395\"\r\n}\r\n\r\n.ion-android-more-horizontal:before {\r\n    content: \"\\f396\"\r\n}\r\n\r\n.ion-android-more-vertical:before {\r\n    content: \"\\f397\"\r\n}\r\n\r\n.ion-android-navigate:before {\r\n    content: \"\\f398\"\r\n}\r\n\r\n.ion-android-notifications:before {\r\n    content: \"\\f39b\"\r\n}\r\n\r\n.ion-android-notifications-none:before {\r\n    content: \"\\f399\"\r\n}\r\n\r\n.ion-android-notifications-off:before {\r\n    content: \"\\f39a\"\r\n}\r\n\r\n.ion-android-open:before {\r\n    content: \"\\f39c\"\r\n}\r\n\r\n.ion-android-options:before {\r\n    content: \"\\f39d\"\r\n}\r\n\r\n.ion-android-people:before {\r\n    content: \"\\f39e\"\r\n}\r\n\r\n.ion-android-person:before {\r\n    content: \"\\f3a0\"\r\n}\r\n\r\n.ion-android-person-add:before {\r\n    content: \"\\f39f\"\r\n}\r\n\r\n.ion-android-phone-landscape:before {\r\n    content: \"\\f3a1\"\r\n}\r\n\r\n.ion-android-phone-portrait:before {\r\n    content: \"\\f3a2\"\r\n}\r\n\r\n.ion-android-pin:before {\r\n    content: \"\\f3a3\"\r\n}\r\n\r\n.ion-android-plane:before {\r\n    content: \"\\f3a4\"\r\n}\r\n\r\n.ion-android-playstore:before {\r\n    content: \"\\f2f0\"\r\n}\r\n\r\n.ion-android-print:before {\r\n    content: \"\\f3a5\"\r\n}\r\n\r\n.ion-android-radio-button-off:before {\r\n    content: \"\\f3a6\"\r\n}\r\n\r\n.ion-android-radio-button-on:before {\r\n    content: \"\\f3a7\"\r\n}\r\n\r\n.ion-android-refresh:before {\r\n    content: \"\\f3a8\"\r\n}\r\n\r\n.ion-android-remove:before {\r\n    content: \"\\f2f4\"\r\n}\r\n\r\n.ion-android-remove-circle:before {\r\n    content: \"\\f3a9\"\r\n}\r\n\r\n.ion-android-restaurant:before {\r\n    content: \"\\f3aa\"\r\n}\r\n\r\n.ion-android-sad:before {\r\n    content: \"\\f3ab\"\r\n}\r\n\r\n.ion-android-search:before {\r\n    content: \"\\f2f5\"\r\n}\r\n\r\n.ion-android-send:before {\r\n    content: \"\\f2f6\"\r\n}\r\n\r\n.ion-android-settings:before {\r\n    content: \"\\f2f7\"\r\n}\r\n\r\n.ion-android-share:before {\r\n    content: \"\\f2f8\"\r\n}\r\n\r\n.ion-android-share-alt:before {\r\n    content: \"\\f3ac\"\r\n}\r\n\r\n.ion-android-star:before {\r\n    content: \"\\f2fc\"\r\n}\r\n\r\n.ion-android-star-half:before {\r\n    content: \"\\f3ad\"\r\n}\r\n\r\n.ion-android-star-outline:before {\r\n    content: \"\\f3ae\"\r\n}\r\n\r\n.ion-android-stopwatch:before {\r\n    content: \"\\f2fd\"\r\n}\r\n\r\n.ion-android-subway:before {\r\n    content: \"\\f3af\"\r\n}\r\n\r\n.ion-android-sunny:before {\r\n    content: \"\\f3b0\"\r\n}\r\n\r\n.ion-android-sync:before {\r\n    content: \"\\f3b1\"\r\n}\r\n\r\n.ion-android-textsms:before {\r\n    content: \"\\f3b2\"\r\n}\r\n\r\n.ion-android-time:before {\r\n    content: \"\\f3b3\"\r\n}\r\n\r\n.ion-android-train:before {\r\n    content: \"\\f3b4\"\r\n}\r\n\r\n.ion-android-unlock:before {\r\n    content: \"\\f3b5\"\r\n}\r\n\r\n.ion-android-upload:before {\r\n    content: \"\\f3b6\"\r\n}\r\n\r\n.ion-android-volume-down:before {\r\n    content: \"\\f3b7\"\r\n}\r\n\r\n.ion-android-volume-mute:before {\r\n    content: \"\\f3b8\"\r\n}\r\n\r\n.ion-android-volume-off:before {\r\n    content: \"\\f3b9\"\r\n}\r\n\r\n.ion-android-volume-up:before {\r\n    content: \"\\f3ba\"\r\n}\r\n\r\n.ion-android-walk:before {\r\n    content: \"\\f3bb\"\r\n}\r\n\r\n.ion-android-warning:before {\r\n    content: \"\\f3bc\"\r\n}\r\n\r\n.ion-android-watch:before {\r\n    content: \"\\f3bd\"\r\n}\r\n\r\n.ion-android-wifi:before {\r\n    content: \"\\f305\"\r\n}\r\n\r\n.ion-aperture:before {\r\n    content: \"\\f313\"\r\n}\r\n\r\n.ion-archive:before {\r\n    content: \"\\f102\"\r\n}\r\n\r\n.ion-arrow-down-a:before {\r\n    content: \"\\f103\"\r\n}\r\n\r\n.ion-arrow-down-b:before {\r\n    content: \"\\f104\"\r\n}\r\n\r\n.ion-arrow-down-c:before {\r\n    content: \"\\f105\"\r\n}\r\n\r\n.ion-arrow-expand:before {\r\n    content: \"\\f25e\"\r\n}\r\n\r\n.ion-arrow-graph-down-left:before {\r\n    content: \"\\f25f\"\r\n}\r\n\r\n.ion-arrow-graph-down-right:before {\r\n    content: \"\\f260\"\r\n}\r\n\r\n.ion-arrow-graph-up-left:before {\r\n    content: \"\\f261\"\r\n}\r\n\r\n.ion-arrow-graph-up-right:before {\r\n    content: \"\\f262\"\r\n}\r\n\r\n.ion-arrow-left-a:before {\r\n    content: \"\\f106\"\r\n}\r\n\r\n.ion-arrow-left-b:before {\r\n    content: \"\\f107\"\r\n}\r\n\r\n.ion-arrow-left-c:before {\r\n    content: \"\\f108\"\r\n}\r\n\r\n.ion-arrow-move:before {\r\n    content: \"\\f263\"\r\n}\r\n\r\n.ion-arrow-resize:before {\r\n    content: \"\\f264\"\r\n}\r\n\r\n.ion-arrow-return-left:before {\r\n    content: \"\\f265\"\r\n}\r\n\r\n.ion-arrow-return-right:before {\r\n    content: \"\\f266\"\r\n}\r\n\r\n.ion-arrow-right-a:before {\r\n    content: \"\\f109\"\r\n}\r\n\r\n.ion-arrow-right-b:before {\r\n    content: \"\\f10a\"\r\n}\r\n\r\n.ion-arrow-right-c:before {\r\n    content: \"\\f10b\"\r\n}\r\n\r\n.ion-arrow-shrink:before {\r\n    content: \"\\f267\"\r\n}\r\n\r\n.ion-arrow-swap:before {\r\n    content: \"\\f268\"\r\n}\r\n\r\n.ion-arrow-up-a:before {\r\n    content: \"\\f10c\"\r\n}\r\n\r\n.ion-arrow-up-b:before {\r\n    content: \"\\f10d\"\r\n}\r\n\r\n.ion-arrow-up-c:before {\r\n    content: \"\\f10e\"\r\n}\r\n\r\n.ion-asterisk:before {\r\n    content: \"\\f314\"\r\n}\r\n\r\n.ion-at:before {\r\n    content: \"\\f10f\"\r\n}\r\n\r\n.ion-backspace:before {\r\n    content: \"\\f3bf\"\r\n}\r\n\r\n.ion-backspace-outline:before {\r\n    content: \"\\f3be\"\r\n}\r\n\r\n.ion-bag:before {\r\n    content: \"\\f110\"\r\n}\r\n\r\n.ion-battery-charging:before {\r\n    content: \"\\f111\"\r\n}\r\n\r\n.ion-battery-empty:before {\r\n    content: \"\\f112\"\r\n}\r\n\r\n.ion-battery-full:before {\r\n    content: \"\\f113\"\r\n}\r\n\r\n.ion-battery-half:before {\r\n    content: \"\\f114\"\r\n}\r\n\r\n.ion-battery-low:before {\r\n    content: \"\\f115\"\r\n}\r\n\r\n.ion-beaker:before {\r\n    content: \"\\f269\"\r\n}\r\n\r\n.ion-beer:before {\r\n    content: \"\\f26a\"\r\n}\r\n\r\n.ion-bluetooth:before {\r\n    content: \"\\f116\"\r\n}\r\n\r\n.ion-bonfire:before {\r\n    content: \"\\f315\"\r\n}\r\n\r\n.ion-bookmark:before {\r\n    content: \"\\f26b\"\r\n}\r\n\r\n.ion-bowtie:before {\r\n    content: \"\\f3c0\"\r\n}\r\n\r\n.ion-briefcase:before {\r\n    content: \"\\f26c\"\r\n}\r\n\r\n.ion-bug:before {\r\n    content: \"\\f2be\"\r\n}\r\n\r\n.ion-calculator:before {\r\n    content: \"\\f26d\"\r\n}\r\n\r\n.ion-calendar:before {\r\n    content: \"\\f117\"\r\n}\r\n\r\n.ion-camera:before {\r\n    content: \"\\f118\"\r\n}\r\n\r\n.ion-card:before {\r\n    content: \"\\f119\"\r\n}\r\n\r\n.ion-cash:before {\r\n    content: \"\\f316\"\r\n}\r\n\r\n.ion-chatbox:before {\r\n    content: \"\\f11b\"\r\n}\r\n\r\n.ion-chatbox-working:before {\r\n    content: \"\\f11a\"\r\n}\r\n\r\n.ion-chatboxes:before {\r\n    content: \"\\f11c\"\r\n}\r\n\r\n.ion-chatbubble:before {\r\n    content: \"\\f11e\"\r\n}\r\n\r\n.ion-chatbubble-working:before {\r\n    content: \"\\f11d\"\r\n}\r\n\r\n.ion-chatbubbles:before {\r\n    content: \"\\f11f\"\r\n}\r\n\r\n.ion-checkmark:before {\r\n    content: \"\\f122\"\r\n}\r\n\r\n.ion-checkmark-circled:before {\r\n    content: \"\\f120\"\r\n}\r\n\r\n.ion-checkmark-round:before {\r\n    content: \"\\f121\"\r\n}\r\n\r\n.ion-chevron-down:before {\r\n    content: \"\\f123\"\r\n}\r\n\r\n.ion-chevron-left:before {\r\n    content: \"\\f124\"\r\n}\r\n\r\n.ion-chevron-right:before {\r\n    content: \"\\f125\"\r\n}\r\n\r\n.ion-chevron-up:before {\r\n    content: \"\\f126\"\r\n}\r\n\r\n.ion-clipboard:before {\r\n    content: \"\\f127\"\r\n}\r\n\r\n.ion-clock:before {\r\n    content: \"\\f26e\"\r\n}\r\n\r\n.ion-close:before {\r\n    content: \"\\f12a\"\r\n}\r\n\r\n.ion-close-circled:before {\r\n    content: \"\\f128\"\r\n}\r\n\r\n.ion-close-round:before {\r\n    content: \"\\f129\"\r\n}\r\n\r\n.ion-closed-captioning:before {\r\n    content: \"\\f317\"\r\n}\r\n\r\n.ion-cloud:before {\r\n    content: \"\\f12b\"\r\n}\r\n\r\n.ion-code:before {\r\n    content: \"\\f271\"\r\n}\r\n\r\n.ion-code-download:before {\r\n    content: \"\\f26f\"\r\n}\r\n\r\n.ion-code-working:before {\r\n    content: \"\\f270\"\r\n}\r\n\r\n.ion-coffee:before {\r\n    content: \"\\f272\"\r\n}\r\n\r\n.ion-compass:before {\r\n    content: \"\\f273\"\r\n}\r\n\r\n.ion-compose:before {\r\n    content: \"\\f12c\"\r\n}\r\n\r\n.ion-connection-bars:before {\r\n    content: \"\\f274\"\r\n}\r\n\r\n.ion-contrast:before {\r\n    content: \"\\f275\"\r\n}\r\n\r\n.ion-crop:before {\r\n    content: \"\\f3c1\"\r\n}\r\n\r\n.ion-cube:before {\r\n    content: \"\\f318\"\r\n}\r\n\r\n.ion-disc:before {\r\n    content: \"\\f12d\"\r\n}\r\n\r\n.ion-document:before {\r\n    content: \"\\f12f\"\r\n}\r\n\r\n.ion-document-text:before {\r\n    content: \"\\f12e\"\r\n}\r\n\r\n.ion-drag:before {\r\n    content: \"\\f130\"\r\n}\r\n\r\n.ion-earth:before {\r\n    content: \"\\f276\"\r\n}\r\n\r\n.ion-easel:before {\r\n    content: \"\\f3c2\"\r\n}\r\n\r\n.ion-edit:before {\r\n    content: \"\\f2bf\"\r\n}\r\n\r\n.ion-egg:before {\r\n    content: \"\\f277\"\r\n}\r\n\r\n.ion-eject:before {\r\n    content: \"\\f131\"\r\n}\r\n\r\n.ion-email:before {\r\n    content: \"\\f132\"\r\n}\r\n\r\n.ion-email-unread:before {\r\n    content: \"\\f3c3\"\r\n}\r\n\r\n.ion-erlenmeyer-flask:before {\r\n    content: \"\\f3c5\"\r\n}\r\n\r\n.ion-erlenmeyer-flask-bubbles:before {\r\n    content: \"\\f3c4\"\r\n}\r\n\r\n.ion-eye:before {\r\n    content: \"\\f133\"\r\n}\r\n\r\n.ion-eye-disabled:before {\r\n    content: \"\\f306\"\r\n}\r\n\r\n.ion-female:before {\r\n    content: \"\\f278\"\r\n}\r\n\r\n.ion-filing:before {\r\n    content: \"\\f134\"\r\n}\r\n\r\n.ion-film-marker:before {\r\n    content: \"\\f135\"\r\n}\r\n\r\n.ion-fireball:before {\r\n    content: \"\\f319\"\r\n}\r\n\r\n.ion-flag:before {\r\n    content: \"\\f279\"\r\n}\r\n\r\n.ion-flame:before {\r\n    content: \"\\f31a\"\r\n}\r\n\r\n.ion-flash:before {\r\n    content: \"\\f137\"\r\n}\r\n\r\n.ion-flash-off:before {\r\n    content: \"\\f136\"\r\n}\r\n\r\n.ion-folder:before {\r\n    content: \"\\f139\"\r\n}\r\n\r\n.ion-fork:before {\r\n    content: \"\\f27a\"\r\n}\r\n\r\n.ion-fork-repo:before {\r\n    content: \"\\f2c0\"\r\n}\r\n\r\n.ion-forward:before {\r\n    content: \"\\f13a\"\r\n}\r\n\r\n.ion-funnel:before {\r\n    content: \"\\f31b\"\r\n}\r\n\r\n.ion-gear-a:before {\r\n    content: \"\\f13d\"\r\n}\r\n\r\n.ion-gear-b:before {\r\n    content: \"\\f13e\"\r\n}\r\n\r\n.ion-grid:before {\r\n    content: \"\\f13f\"\r\n}\r\n\r\n.ion-hammer:before {\r\n    content: \"\\f27b\"\r\n}\r\n\r\n.ion-happy:before {\r\n    content: \"\\f31c\"\r\n}\r\n\r\n.ion-happy-outline:before {\r\n    content: \"\\f3c6\"\r\n}\r\n\r\n.ion-headphone:before {\r\n    content: \"\\f140\"\r\n}\r\n\r\n.ion-heart:before {\r\n    content: \"\\f141\"\r\n}\r\n\r\n.ion-heart-broken:before {\r\n    content: \"\\f31d\"\r\n}\r\n\r\n.ion-help:before {\r\n    content: \"\\f143\"\r\n}\r\n\r\n.ion-help-buoy:before {\r\n    content: \"\\f27c\"\r\n}\r\n\r\n.ion-help-circled:before {\r\n    content: \"\\f142\"\r\n}\r\n\r\n.ion-home:before {\r\n    content: \"\\f144\"\r\n}\r\n\r\n.ion-icecream:before {\r\n    content: \"\\f27d\"\r\n}\r\n\r\n.ion-image:before {\r\n    content: \"\\f147\"\r\n}\r\n\r\n.ion-images:before {\r\n    content: \"\\f148\"\r\n}\r\n\r\n.ion-information:before {\r\n    content: \"\\f14a\"\r\n}\r\n\r\n.ion-information-circled:before {\r\n    content: \"\\f149\"\r\n}\r\n\r\n.ion-ionic:before {\r\n    content: \"\\f14b\"\r\n}\r\n\r\n.ion-ios-alarm:before {\r\n    content: \"\\f3c8\"\r\n}\r\n\r\n.ion-ios-alarm-outline:before {\r\n    content: \"\\f3c7\"\r\n}\r\n\r\n.ion-ios-albums:before {\r\n    content: \"\\f3ca\"\r\n}\r\n\r\n.ion-ios-albums-outline:before {\r\n    content: \"\\f3c9\"\r\n}\r\n\r\n.ion-ios-americanfootball:before {\r\n    content: \"\\f3cc\"\r\n}\r\n\r\n.ion-ios-americanfootball-outline:before {\r\n    content: \"\\f3cb\"\r\n}\r\n\r\n.ion-ios-analytics:before {\r\n    content: \"\\f3ce\"\r\n}\r\n\r\n.ion-ios-analytics-outline:before {\r\n    content: \"\\f3cd\"\r\n}\r\n\r\n.ion-ios-arrow-back:before {\r\n    content: \"\\f3cf\"\r\n}\r\n\r\n.ion-ios-arrow-down:before {\r\n    content: \"\\f3d0\"\r\n}\r\n\r\n.ion-ios-arrow-forward:before {\r\n    content: \"\\f3d1\"\r\n}\r\n\r\n.ion-ios-arrow-left:before {\r\n    content: \"\\f3d2\"\r\n}\r\n\r\n.ion-ios-arrow-right:before {\r\n    content: \"\\f3d3\"\r\n}\r\n\r\n.ion-ios-arrow-thin-down:before {\r\n    content: \"\\f3d4\"\r\n}\r\n\r\n.ion-ios-arrow-thin-left:before {\r\n    content: \"\\f3d5\"\r\n}\r\n\r\n.ion-ios-arrow-thin-right:before {\r\n    content: \"\\f3d6\"\r\n}\r\n\r\n.ion-ios-arrow-thin-up:before {\r\n    content: \"\\f3d7\"\r\n}\r\n\r\n.ion-ios-arrow-up:before {\r\n    content: \"\\f3d8\"\r\n}\r\n\r\n.ion-ios-at:before {\r\n    content: \"\\f3da\"\r\n}\r\n\r\n.ion-ios-at-outline:before {\r\n    content: \"\\f3d9\"\r\n}\r\n\r\n.ion-ios-barcode:before {\r\n    content: \"\\f3dc\"\r\n}\r\n\r\n.ion-ios-barcode-outline:before {\r\n    content: \"\\f3db\"\r\n}\r\n\r\n.ion-ios-baseball:before {\r\n    content: \"\\f3de\"\r\n}\r\n\r\n.ion-ios-baseball-outline:before {\r\n    content: \"\\f3dd\"\r\n}\r\n\r\n.ion-ios-basketball:before {\r\n    content: \"\\f3e0\"\r\n}\r\n\r\n.ion-ios-basketball-outline:before {\r\n    content: \"\\f3df\"\r\n}\r\n\r\n.ion-ios-bell:before {\r\n    content: \"\\f3e2\"\r\n}\r\n\r\n.ion-ios-bell-outline:before {\r\n    content: \"\\f3e1\"\r\n}\r\n\r\n.ion-ios-body:before {\r\n    content: \"\\f3e4\"\r\n}\r\n\r\n.ion-ios-body-outline:before {\r\n    content: \"\\f3e3\"\r\n}\r\n\r\n.ion-ios-bolt:before {\r\n    content: \"\\f3e6\"\r\n}\r\n\r\n.ion-ios-bolt-outline:before {\r\n    content: \"\\f3e5\"\r\n}\r\n\r\n.ion-ios-book:before {\r\n    content: \"\\f3e8\"\r\n}\r\n\r\n.ion-ios-book-outline:before {\r\n    content: \"\\f3e7\"\r\n}\r\n\r\n.ion-ios-bookmarks:before {\r\n    content: \"\\f3ea\"\r\n}\r\n\r\n.ion-ios-bookmarks-outline:before {\r\n    content: \"\\f3e9\"\r\n}\r\n\r\n.ion-ios-box:before {\r\n    content: \"\\f3ec\"\r\n}\r\n\r\n.ion-ios-box-outline:before {\r\n    content: \"\\f3eb\"\r\n}\r\n\r\n.ion-ios-briefcase:before {\r\n    content: \"\\f3ee\"\r\n}\r\n\r\n.ion-ios-briefcase-outline:before {\r\n    content: \"\\f3ed\"\r\n}\r\n\r\n.ion-ios-browsers:before {\r\n    content: \"\\f3f0\"\r\n}\r\n\r\n.ion-ios-browsers-outline:before {\r\n    content: \"\\f3ef\"\r\n}\r\n\r\n.ion-ios-calculator:before {\r\n    content: \"\\f3f2\"\r\n}\r\n\r\n.ion-ios-calculator-outline:before {\r\n    content: \"\\f3f1\"\r\n}\r\n\r\n.ion-ios-calendar:before {\r\n    content: \"\\f3f4\"\r\n}\r\n\r\n.ion-ios-calendar-outline:before {\r\n    content: \"\\f3f3\"\r\n}\r\n\r\n.ion-ios-camera:before {\r\n    content: \"\\f3f6\"\r\n}\r\n\r\n.ion-ios-camera-outline:before {\r\n    content: \"\\f3f5\"\r\n}\r\n\r\n.ion-ios-cart:before {\r\n    content: \"\\f3f8\"\r\n}\r\n\r\n.ion-ios-cart-outline:before {\r\n    content: \"\\f3f7\"\r\n}\r\n\r\n.ion-ios-chatboxes:before {\r\n    content: \"\\f3fa\"\r\n}\r\n\r\n.ion-ios-chatboxes-outline:before {\r\n    content: \"\\f3f9\"\r\n}\r\n\r\n.ion-ios-chatbubble:before {\r\n    content: \"\\f3fc\"\r\n}\r\n\r\n.ion-ios-chatbubble-outline:before {\r\n    content: \"\\f3fb\"\r\n}\r\n\r\n.ion-ios-checkmark:before {\r\n    content: \"\\f3ff\"\r\n}\r\n\r\n.ion-ios-checkmark-empty:before {\r\n    content: \"\\f3fd\"\r\n}\r\n\r\n.ion-ios-checkmark-outline:before {\r\n    content: \"\\f3fe\"\r\n}\r\n\r\n.ion-ios-circle-filled:before {\r\n    content: \"\\f400\"\r\n}\r\n\r\n.ion-ios-circle-outline:before {\r\n    content: \"\\f401\"\r\n}\r\n\r\n.ion-ios-clock:before {\r\n    content: \"\\f403\"\r\n}\r\n\r\n.ion-ios-clock-outline:before {\r\n    content: \"\\f402\"\r\n}\r\n\r\n.ion-ios-close:before {\r\n    content: \"\\f406\"\r\n}\r\n\r\n.ion-ios-close-empty:before {\r\n    content: \"\\f404\"\r\n}\r\n\r\n.ion-ios-close-outline:before {\r\n    content: \"\\f405\"\r\n}\r\n\r\n.ion-ios-cloud:before {\r\n    content: \"\\f40c\"\r\n}\r\n\r\n.ion-ios-cloud-download:before {\r\n    content: \"\\f408\"\r\n}\r\n\r\n.ion-ios-cloud-download-outline:before {\r\n    content: \"\\f407\"\r\n}\r\n\r\n.ion-ios-cloud-outline:before {\r\n    content: \"\\f409\"\r\n}\r\n\r\n.ion-ios-cloud-upload:before {\r\n    content: \"\\f40b\"\r\n}\r\n\r\n.ion-ios-cloud-upload-outline:before {\r\n    content: \"\\f40a\"\r\n}\r\n\r\n.ion-ios-cloudy:before {\r\n    content: \"\\f410\"\r\n}\r\n\r\n.ion-ios-cloudy-night:before {\r\n    content: \"\\f40e\"\r\n}\r\n\r\n.ion-ios-cloudy-night-outline:before {\r\n    content: \"\\f40d\"\r\n}\r\n\r\n.ion-ios-cloudy-outline:before {\r\n    content: \"\\f40f\"\r\n}\r\n\r\n.ion-ios-cog:before {\r\n    content: \"\\f412\"\r\n}\r\n\r\n.ion-ios-cog-outline:before {\r\n    content: \"\\f411\"\r\n}\r\n\r\n.ion-ios-color-filter:before {\r\n    content: \"\\f414\"\r\n}\r\n\r\n.ion-ios-color-filter-outline:before {\r\n    content: \"\\f413\"\r\n}\r\n\r\n.ion-ios-color-wand:before {\r\n    content: \"\\f416\"\r\n}\r\n\r\n.ion-ios-color-wand-outline:before {\r\n    content: \"\\f415\"\r\n}\r\n\r\n.ion-ios-compose:before {\r\n    content: \"\\f418\"\r\n}\r\n\r\n.ion-ios-compose-outline:before {\r\n    content: \"\\f417\"\r\n}\r\n\r\n.ion-ios-contact:before {\r\n    content: \"\\f41a\"\r\n}\r\n\r\n.ion-ios-contact-outline:before {\r\n    content: \"\\f419\"\r\n}\r\n\r\n.ion-ios-copy:before {\r\n    content: \"\\f41c\"\r\n}\r\n\r\n.ion-ios-copy-outline:before {\r\n    content: \"\\f41b\"\r\n}\r\n\r\n.ion-ios-crop:before {\r\n    content: \"\\f41e\"\r\n}\r\n\r\n.ion-ios-crop-strong:before {\r\n    content: \"\\f41d\"\r\n}\r\n\r\n.ion-ios-download:before {\r\n    content: \"\\f420\"\r\n}\r\n\r\n.ion-ios-download-outline:before {\r\n    content: \"\\f41f\"\r\n}\r\n\r\n.ion-ios-drag:before {\r\n    content: \"\\f421\"\r\n}\r\n\r\n.ion-ios-email:before {\r\n    content: \"\\f423\"\r\n}\r\n\r\n.ion-ios-email-outline:before {\r\n    content: \"\\f422\"\r\n}\r\n\r\n.ion-ios-eye:before {\r\n    content: \"\\f425\"\r\n}\r\n\r\n.ion-ios-eye-outline:before {\r\n    content: \"\\f424\"\r\n}\r\n\r\n.ion-ios-fastforward:before {\r\n    content: \"\\f427\"\r\n}\r\n\r\n.ion-ios-fastforward-outline:before {\r\n    content: \"\\f426\"\r\n}\r\n\r\n.ion-ios-filing:before {\r\n    content: \"\\f429\"\r\n}\r\n\r\n.ion-ios-filing-outline:before {\r\n    content: \"\\f428\"\r\n}\r\n\r\n.ion-ios-film:before {\r\n    content: \"\\f42b\"\r\n}\r\n\r\n.ion-ios-film-outline:before {\r\n    content: \"\\f42a\"\r\n}\r\n\r\n.ion-ios-flag:before {\r\n    content: \"\\f42d\"\r\n}\r\n\r\n.ion-ios-flag-outline:before {\r\n    content: \"\\f42c\"\r\n}\r\n\r\n.ion-ios-flame:before {\r\n    content: \"\\f42f\"\r\n}\r\n\r\n.ion-ios-flame-outline:before {\r\n    content: \"\\f42e\"\r\n}\r\n\r\n.ion-ios-flask:before {\r\n    content: \"\\f431\"\r\n}\r\n\r\n.ion-ios-flask-outline:before {\r\n    content: \"\\f430\"\r\n}\r\n\r\n.ion-ios-flower:before {\r\n    content: \"\\f433\"\r\n}\r\n\r\n.ion-ios-flower-outline:before {\r\n    content: \"\\f432\"\r\n}\r\n\r\n.ion-ios-folder:before {\r\n    content: \"\\f435\"\r\n}\r\n\r\n.ion-ios-folder-outline:before {\r\n    content: \"\\f434\"\r\n}\r\n\r\n.ion-ios-football:before {\r\n    content: \"\\f437\"\r\n}\r\n\r\n.ion-ios-football-outline:before {\r\n    content: \"\\f436\"\r\n}\r\n\r\n.ion-ios-game-controller-a:before {\r\n    content: \"\\f439\"\r\n}\r\n\r\n.ion-ios-game-controller-a-outline:before {\r\n    content: \"\\f438\"\r\n}\r\n\r\n.ion-ios-game-controller-b:before {\r\n    content: \"\\f43b\"\r\n}\r\n\r\n.ion-ios-game-controller-b-outline:before {\r\n    content: \"\\f43a\"\r\n}\r\n\r\n.ion-ios-gear:before {\r\n    content: \"\\f43d\"\r\n}\r\n\r\n.ion-ios-gear-outline:before {\r\n    content: \"\\f43c\"\r\n}\r\n\r\n.ion-ios-glasses:before {\r\n    content: \"\\f43f\"\r\n}\r\n\r\n.ion-ios-glasses-outline:before {\r\n    content: \"\\f43e\"\r\n}\r\n\r\n.ion-ios-grid-view:before {\r\n    content: \"\\f441\"\r\n}\r\n\r\n.ion-ios-grid-view-outline:before {\r\n    content: \"\\f440\"\r\n}\r\n\r\n.ion-ios-heart:before {\r\n    content: \"\\f443\"\r\n}\r\n\r\n.ion-ios-heart-outline:before {\r\n    content: \"\\f442\"\r\n}\r\n\r\n.ion-ios-help:before {\r\n    content: \"\\f446\"\r\n}\r\n\r\n.ion-ios-help-empty:before {\r\n    content: \"\\f444\"\r\n}\r\n\r\n.ion-ios-help-outline:before {\r\n    content: \"\\f445\"\r\n}\r\n\r\n.ion-ios-home:before {\r\n    content: \"\\f448\"\r\n}\r\n\r\n.ion-ios-home-outline:before {\r\n    content: \"\\f447\"\r\n}\r\n\r\n.ion-ios-infinite:before {\r\n    content: \"\\f44a\"\r\n}\r\n\r\n.ion-ios-infinite-outline:before {\r\n    content: \"\\f449\"\r\n}\r\n\r\n.ion-ios-information:before {\r\n    content: \"\\f44d\"\r\n}\r\n\r\n.ion-ios-information-empty:before {\r\n    content: \"\\f44b\"\r\n}\r\n\r\n.ion-ios-information-outline:before {\r\n    content: \"\\f44c\"\r\n}\r\n\r\n.ion-ios-ionic-outline:before {\r\n    content: \"\\f44e\"\r\n}\r\n\r\n.ion-ios-keypad:before {\r\n    content: \"\\f450\"\r\n}\r\n\r\n.ion-ios-keypad-outline:before {\r\n    content: \"\\f44f\"\r\n}\r\n\r\n.ion-ios-lightbulb:before {\r\n    content: \"\\f452\"\r\n}\r\n\r\n.ion-ios-lightbulb-outline:before {\r\n    content: \"\\f451\"\r\n}\r\n\r\n.ion-ios-list:before {\r\n    content: \"\\f454\"\r\n}\r\n\r\n.ion-ios-list-outline:before {\r\n    content: \"\\f453\"\r\n}\r\n\r\n.ion-ios-location:before {\r\n    content: \"\\f456\"\r\n}\r\n\r\n.ion-ios-location-outline:before {\r\n    content: \"\\f455\"\r\n}\r\n\r\n.ion-ios-locked:before {\r\n    content: \"\\f458\"\r\n}\r\n\r\n.ion-ios-locked-outline:before {\r\n    content: \"\\f457\"\r\n}\r\n\r\n.ion-ios-loop:before {\r\n    content: \"\\f45a\"\r\n}\r\n\r\n.ion-ios-loop-strong:before {\r\n    content: \"\\f459\"\r\n}\r\n\r\n.ion-ios-medical:before {\r\n    content: \"\\f45c\"\r\n}\r\n\r\n.ion-ios-medical-outline:before {\r\n    content: \"\\f45b\"\r\n}\r\n\r\n.ion-ios-medkit:before {\r\n    content: \"\\f45e\"\r\n}\r\n\r\n.ion-ios-medkit-outline:before {\r\n    content: \"\\f45d\"\r\n}\r\n\r\n.ion-ios-mic:before {\r\n    content: \"\\f461\"\r\n}\r\n\r\n.ion-ios-mic-off:before {\r\n    content: \"\\f45f\"\r\n}\r\n\r\n.ion-ios-mic-outline:before {\r\n    content: \"\\f460\"\r\n}\r\n\r\n.ion-ios-minus:before {\r\n    content: \"\\f464\"\r\n}\r\n\r\n.ion-ios-minus-empty:before {\r\n    content: \"\\f462\"\r\n}\r\n\r\n.ion-ios-minus-outline:before {\r\n    content: \"\\f463\"\r\n}\r\n\r\n.ion-ios-monitor:before {\r\n    content: \"\\f466\"\r\n}\r\n\r\n.ion-ios-monitor-outline:before {\r\n    content: \"\\f465\"\r\n}\r\n\r\n.ion-ios-moon:before {\r\n    content: \"\\f468\"\r\n}\r\n\r\n.ion-ios-moon-outline:before {\r\n    content: \"\\f467\"\r\n}\r\n\r\n.ion-ios-more:before {\r\n    content: \"\\f46a\"\r\n}\r\n\r\n.ion-ios-more-outline:before {\r\n    content: \"\\f469\"\r\n}\r\n\r\n.ion-ios-musical-note:before {\r\n    content: \"\\f46b\"\r\n}\r\n\r\n.ion-ios-musical-notes:before {\r\n    content: \"\\f46c\"\r\n}\r\n\r\n.ion-ios-navigate:before {\r\n    content: \"\\f46e\"\r\n}\r\n\r\n.ion-ios-navigate-outline:before {\r\n    content: \"\\f46d\"\r\n}\r\n\r\n.ion-ios-nutrition:before {\r\n    content: \"\\f470\"\r\n}\r\n\r\n.ion-ios-nutrition-outline:before {\r\n    content: \"\\f46f\"\r\n}\r\n\r\n.ion-ios-paper:before {\r\n    content: \"\\f472\"\r\n}\r\n\r\n.ion-ios-paper-outline:before {\r\n    content: \"\\f471\"\r\n}\r\n\r\n.ion-ios-paperplane:before {\r\n    content: \"\\f474\"\r\n}\r\n\r\n.ion-ios-paperplane-outline:before {\r\n    content: \"\\f473\"\r\n}\r\n\r\n.ion-ios-partlysunny:before {\r\n    content: \"\\f476\"\r\n}\r\n\r\n.ion-ios-partlysunny-outline:before {\r\n    content: \"\\f475\"\r\n}\r\n\r\n.ion-ios-pause:before {\r\n    content: \"\\f478\"\r\n}\r\n\r\n.ion-ios-pause-outline:before {\r\n    content: \"\\f477\"\r\n}\r\n\r\n.ion-ios-paw:before {\r\n    content: \"\\f47a\"\r\n}\r\n\r\n.ion-ios-paw-outline:before {\r\n    content: \"\\f479\"\r\n}\r\n\r\n.ion-ios-people:before {\r\n    content: \"\\f47c\"\r\n}\r\n\r\n.ion-ios-people-outline:before {\r\n    content: \"\\f47b\"\r\n}\r\n\r\n.ion-ios-person:before {\r\n    content: \"\\f47e\"\r\n}\r\n\r\n.ion-ios-person-outline:before {\r\n    content: \"\\f47d\"\r\n}\r\n\r\n.ion-ios-personadd:before {\r\n    content: \"\\f480\"\r\n}\r\n\r\n.ion-ios-personadd-outline:before {\r\n    content: \"\\f47f\"\r\n}\r\n\r\n.ion-ios-photos:before {\r\n    content: \"\\f482\"\r\n}\r\n\r\n.ion-ios-photos-outline:before {\r\n    content: \"\\f481\"\r\n}\r\n\r\n.ion-ios-pie:before {\r\n    content: \"\\f484\"\r\n}\r\n\r\n.ion-ios-pie-outline:before {\r\n    content: \"\\f483\"\r\n}\r\n\r\n.ion-ios-pint:before {\r\n    content: \"\\f486\"\r\n}\r\n\r\n.ion-ios-pint-outline:before {\r\n    content: \"\\f485\"\r\n}\r\n\r\n.ion-ios-play:before {\r\n    content: \"\\f488\"\r\n}\r\n\r\n.ion-ios-play-outline:before {\r\n    content: \"\\f487\"\r\n}\r\n\r\n.ion-ios-plus:before {\r\n    content: \"\\f48b\"\r\n}\r\n\r\n.ion-ios-plus-empty:before {\r\n    content: \"\\f489\"\r\n}\r\n\r\n.ion-ios-plus-outline:before {\r\n    content: \"\\f48a\"\r\n}\r\n\r\n.ion-ios-pricetag:before {\r\n    content: \"\\f48d\"\r\n}\r\n\r\n.ion-ios-pricetag-outline:before {\r\n    content: \"\\f48c\"\r\n}\r\n\r\n.ion-ios-pricetags:before {\r\n    content: \"\\f48f\"\r\n}\r\n\r\n.ion-ios-pricetags-outline:before {\r\n    content: \"\\f48e\"\r\n}\r\n\r\n.ion-ios-printer:before {\r\n    content: \"\\f491\"\r\n}\r\n\r\n.ion-ios-printer-outline:before {\r\n    content: \"\\f490\"\r\n}\r\n\r\n.ion-ios-pulse:before {\r\n    content: \"\\f493\"\r\n}\r\n\r\n.ion-ios-pulse-strong:before {\r\n    content: \"\\f492\"\r\n}\r\n\r\n.ion-ios-rainy:before {\r\n    content: \"\\f495\"\r\n}\r\n\r\n.ion-ios-rainy-outline:before {\r\n    content: \"\\f494\"\r\n}\r\n\r\n.ion-ios-recording:before {\r\n    content: \"\\f497\"\r\n}\r\n\r\n.ion-ios-recording-outline:before {\r\n    content: \"\\f496\"\r\n}\r\n\r\n.ion-ios-redo:before {\r\n    content: \"\\f499\"\r\n}\r\n\r\n.ion-ios-redo-outline:before {\r\n    content: \"\\f498\"\r\n}\r\n\r\n.ion-ios-refresh:before {\r\n    content: \"\\f49c\"\r\n}\r\n\r\n.ion-ios-refresh-empty:before {\r\n    content: \"\\f49a\"\r\n}\r\n\r\n.ion-ios-refresh-outline:before {\r\n    content: \"\\f49b\"\r\n}\r\n\r\n.ion-ios-reload:before {\r\n    content: \"\\f49d\"\r\n}\r\n\r\n.ion-ios-reverse-camera:before {\r\n    content: \"\\f49f\"\r\n}\r\n\r\n.ion-ios-reverse-camera-outline:before {\r\n    content: \"\\f49e\"\r\n}\r\n\r\n.ion-ios-rewind:before {\r\n    content: \"\\f4a1\"\r\n}\r\n\r\n.ion-ios-rewind-outline:before {\r\n    content: \"\\f4a0\"\r\n}\r\n\r\n.ion-ios-rose:before {\r\n    content: \"\\f4a3\"\r\n}\r\n\r\n.ion-ios-rose-outline:before {\r\n    content: \"\\f4a2\"\r\n}\r\n\r\n.ion-ios-search:before {\r\n    content: \"\\f4a5\"\r\n}\r\n\r\n.ion-ios-search-strong:before {\r\n    content: \"\\f4a4\"\r\n}\r\n\r\n.ion-ios-settings:before {\r\n    content: \"\\f4a7\"\r\n}\r\n\r\n.ion-ios-settings-strong:before {\r\n    content: \"\\f4a6\"\r\n}\r\n\r\n.ion-ios-shuffle:before {\r\n    content: \"\\f4a9\"\r\n}\r\n\r\n.ion-ios-shuffle-strong:before {\r\n    content: \"\\f4a8\"\r\n}\r\n\r\n.ion-ios-skipbackward:before {\r\n    content: \"\\f4ab\"\r\n}\r\n\r\n.ion-ios-skipbackward-outline:before {\r\n    content: \"\\f4aa\"\r\n}\r\n\r\n.ion-ios-skipforward:before {\r\n    content: \"\\f4ad\"\r\n}\r\n\r\n.ion-ios-skipforward-outline:before {\r\n    content: \"\\f4ac\"\r\n}\r\n\r\n.ion-ios-snowy:before {\r\n    content: \"\\f4ae\"\r\n}\r\n\r\n.ion-ios-speedometer:before {\r\n    content: \"\\f4b0\"\r\n}\r\n\r\n.ion-ios-speedometer-outline:before {\r\n    content: \"\\f4af\"\r\n}\r\n\r\n.ion-ios-star:before {\r\n    content: \"\\f4b3\"\r\n}\r\n\r\n.ion-ios-star-half:before {\r\n    content: \"\\f4b1\"\r\n}\r\n\r\n.ion-ios-star-outline:before {\r\n    content: \"\\f4b2\"\r\n}\r\n\r\n.ion-ios-stopwatch:before {\r\n    content: \"\\f4b5\"\r\n}\r\n\r\n.ion-ios-stopwatch-outline:before {\r\n    content: \"\\f4b4\"\r\n}\r\n\r\n.ion-ios-sunny:before {\r\n    content: \"\\f4b7\"\r\n}\r\n\r\n.ion-ios-sunny-outline:before {\r\n    content: \"\\f4b6\"\r\n}\r\n\r\n.ion-ios-telephone:before {\r\n    content: \"\\f4b9\"\r\n}\r\n\r\n.ion-ios-telephone-outline:before {\r\n    content: \"\\f4b8\"\r\n}\r\n\r\n.ion-ios-tennisball:before {\r\n    content: \"\\f4bb\"\r\n}\r\n\r\n.ion-ios-tennisball-outline:before {\r\n    content: \"\\f4ba\"\r\n}\r\n\r\n.ion-ios-thunderstorm:before {\r\n    content: \"\\f4bd\"\r\n}\r\n\r\n.ion-ios-thunderstorm-outline:before {\r\n    content: \"\\f4bc\"\r\n}\r\n\r\n.ion-ios-time:before {\r\n    content: \"\\f4bf\"\r\n}\r\n\r\n.ion-ios-time-outline:before {\r\n    content: \"\\f4be\"\r\n}\r\n\r\n.ion-ios-timer:before {\r\n    content: \"\\f4c1\"\r\n}\r\n\r\n.ion-ios-timer-outline:before {\r\n    content: \"\\f4c0\"\r\n}\r\n\r\n.ion-ios-toggle:before {\r\n    content: \"\\f4c3\"\r\n}\r\n\r\n.ion-ios-toggle-outline:before {\r\n    content: \"\\f4c2\"\r\n}\r\n\r\n.ion-ios-trash:before {\r\n    content: \"\\f4c5\"\r\n}\r\n\r\n.ion-ios-trash-outline:before {\r\n    content: \"\\f4c4\"\r\n}\r\n\r\n.ion-ios-undo:before {\r\n    content: \"\\f4c7\"\r\n}\r\n\r\n.ion-ios-undo-outline:before {\r\n    content: \"\\f4c6\"\r\n}\r\n\r\n.ion-ios-unlocked:before {\r\n    content: \"\\f4c9\"\r\n}\r\n\r\n.ion-ios-unlocked-outline:before {\r\n    content: \"\\f4c8\"\r\n}\r\n\r\n.ion-ios-upload:before {\r\n    content: \"\\f4cb\"\r\n}\r\n\r\n.ion-ios-upload-outline:before {\r\n    content: \"\\f4ca\"\r\n}\r\n\r\n.ion-ios-videocam:before {\r\n    content: \"\\f4cd\"\r\n}\r\n\r\n.ion-ios-videocam-outline:before {\r\n    content: \"\\f4cc\"\r\n}\r\n\r\n.ion-ios-volume-high:before {\r\n    content: \"\\f4ce\"\r\n}\r\n\r\n.ion-ios-volume-low:before {\r\n    content: \"\\f4cf\"\r\n}\r\n\r\n.ion-ios-wineglass:before {\r\n    content: \"\\f4d1\"\r\n}\r\n\r\n.ion-ios-wineglass-outline:before {\r\n    content: \"\\f4d0\"\r\n}\r\n\r\n.ion-ios-world:before {\r\n    content: \"\\f4d3\"\r\n}\r\n\r\n.ion-ios-world-outline:before {\r\n    content: \"\\f4d2\"\r\n}\r\n\r\n.ion-ipad:before {\r\n    content: \"\\f1f9\"\r\n}\r\n\r\n.ion-iphone:before {\r\n    content: \"\\f1fa\"\r\n}\r\n\r\n.ion-ipod:before {\r\n    content: \"\\f1fb\"\r\n}\r\n\r\n.ion-jet:before {\r\n    content: \"\\f295\"\r\n}\r\n\r\n.ion-key:before {\r\n    content: \"\\f296\"\r\n}\r\n\r\n.ion-knife:before {\r\n    content: \"\\f297\"\r\n}\r\n\r\n.ion-laptop:before {\r\n    content: \"\\f1fc\"\r\n}\r\n\r\n.ion-leaf:before {\r\n    content: \"\\f1fd\"\r\n}\r\n\r\n.ion-levels:before {\r\n    content: \"\\f298\"\r\n}\r\n\r\n.ion-lightbulb:before {\r\n    content: \"\\f299\"\r\n}\r\n\r\n.ion-link:before {\r\n    content: \"\\f1fe\"\r\n}\r\n\r\n.ion-load-a:before {\r\n    content: \"\\f29a\"\r\n}\r\n\r\n.ion-load-b:before {\r\n    content: \"\\f29b\"\r\n}\r\n\r\n.ion-load-c:before {\r\n    content: \"\\f29c\"\r\n}\r\n\r\n.ion-load-d:before {\r\n    content: \"\\f29d\"\r\n}\r\n\r\n.ion-location:before {\r\n    content: \"\\f1ff\"\r\n}\r\n\r\n.ion-lock-combination:before {\r\n    content: \"\\f4d4\"\r\n}\r\n\r\n.ion-locked:before {\r\n    content: \"\\f200\"\r\n}\r\n\r\n.ion-log-in:before {\r\n    content: \"\\f29e\"\r\n}\r\n\r\n.ion-log-out:before {\r\n    content: \"\\f29f\"\r\n}\r\n\r\n.ion-loop:before {\r\n    content: \"\\f201\"\r\n}\r\n\r\n.ion-magnet:before {\r\n    content: \"\\f2a0\"\r\n}\r\n\r\n.ion-male:before {\r\n    content: \"\\f2a1\"\r\n}\r\n\r\n.ion-man:before {\r\n    content: \"\\f202\"\r\n}\r\n\r\n.ion-map:before {\r\n    content: \"\\f203\"\r\n}\r\n\r\n.ion-medkit:before {\r\n    content: \"\\f2a2\"\r\n}\r\n\r\n.ion-merge:before {\r\n    content: \"\\f33f\"\r\n}\r\n\r\n.ion-mic-a:before {\r\n    content: \"\\f204\"\r\n}\r\n\r\n.ion-mic-b:before {\r\n    content: \"\\f205\"\r\n}\r\n\r\n.ion-mic-c:before {\r\n    content: \"\\f206\"\r\n}\r\n\r\n.ion-minus:before {\r\n    content: \"\\f209\"\r\n}\r\n\r\n.ion-minus-circled:before {\r\n    content: \"\\f207\"\r\n}\r\n\r\n.ion-minus-round:before {\r\n    content: \"\\f208\"\r\n}\r\n\r\n.ion-model-s:before {\r\n    content: \"\\f2c1\"\r\n}\r\n\r\n.ion-monitor:before {\r\n    content: \"\\f20a\"\r\n}\r\n\r\n.ion-more:before {\r\n    content: \"\\f20b\"\r\n}\r\n\r\n.ion-mouse:before {\r\n    content: \"\\f340\"\r\n}\r\n\r\n.ion-music-note:before {\r\n    content: \"\\f20c\"\r\n}\r\n\r\n.ion-navicon:before {\r\n    content: \"\\f20e\"\r\n}\r\n\r\n.ion-navicon-round:before {\r\n    content: \"\\f20d\"\r\n}\r\n\r\n.ion-navigate:before {\r\n    content: \"\\f2a3\"\r\n}\r\n\r\n.ion-network:before {\r\n    content: \"\\f341\"\r\n}\r\n\r\n.ion-no-smoking:before {\r\n    content: \"\\f2c2\"\r\n}\r\n\r\n.ion-nuclear:before {\r\n    content: \"\\f2a4\"\r\n}\r\n\r\n.ion-outlet:before {\r\n    content: \"\\f342\"\r\n}\r\n\r\n.ion-paintbrush:before {\r\n    content: \"\\f4d5\"\r\n}\r\n\r\n.ion-paintbucket:before {\r\n    content: \"\\f4d6\"\r\n}\r\n\r\n.ion-paper-airplane:before {\r\n    content: \"\\f2c3\"\r\n}\r\n\r\n.ion-paperclip:before {\r\n    content: \"\\f20f\"\r\n}\r\n\r\n.ion-pause:before {\r\n    content: \"\\f210\"\r\n}\r\n\r\n.ion-person:before {\r\n    content: \"\\f213\"\r\n}\r\n\r\n.ion-person-add:before {\r\n    content: \"\\f211\"\r\n}\r\n\r\n.ion-person-stalker:before {\r\n    content: \"\\f212\"\r\n}\r\n\r\n.ion-pie-graph:before {\r\n    content: \"\\f2a5\"\r\n}\r\n\r\n.ion-pin:before {\r\n    content: \"\\f2a6\"\r\n}\r\n\r\n.ion-pinpoint:before {\r\n    content: \"\\f2a7\"\r\n}\r\n\r\n.ion-pizza:before {\r\n    content: \"\\f2a8\"\r\n}\r\n\r\n.ion-plane:before {\r\n    content: \"\\f214\"\r\n}\r\n\r\n.ion-planet:before {\r\n    content: \"\\f343\"\r\n}\r\n\r\n.ion-play:before {\r\n    content: \"\\f215\"\r\n}\r\n\r\n.ion-playstation:before {\r\n    content: \"\\f30a\"\r\n}\r\n\r\n.ion-plus:before {\r\n    content: \"\\f218\"\r\n}\r\n\r\n.ion-plus-circled:before {\r\n    content: \"\\f216\"\r\n}\r\n\r\n.ion-plus-round:before {\r\n    content: \"\\f217\"\r\n}\r\n\r\n.ion-podium:before {\r\n    content: \"\\f344\"\r\n}\r\n\r\n.ion-pound:before {\r\n    content: \"\\f219\"\r\n}\r\n\r\n.ion-power:before {\r\n    content: \"\\f2a9\"\r\n}\r\n\r\n.ion-pricetag:before {\r\n    content: \"\\f2aa\"\r\n}\r\n\r\n.ion-pricetags:before {\r\n    content: \"\\f2ab\"\r\n}\r\n\r\n.ion-printer:before {\r\n    content: \"\\f21a\"\r\n}\r\n\r\n.ion-pull-request:before {\r\n    content: \"\\f345\"\r\n}\r\n\r\n.ion-qr-scanner:before {\r\n    content: \"\\f346\"\r\n}\r\n\r\n.ion-quote:before {\r\n    content: \"\\f347\"\r\n}\r\n\r\n.ion-radio-waves:before {\r\n    content: \"\\f2ac\"\r\n}\r\n\r\n.ion-record:before {\r\n    content: \"\\f21b\"\r\n}\r\n\r\n.ion-refresh:before {\r\n    content: \"\\f21c\"\r\n}\r\n\r\n.ion-reply:before {\r\n    content: \"\\f21e\"\r\n}\r\n\r\n.ion-reply-all:before {\r\n    content: \"\\f21d\"\r\n}\r\n\r\n.ion-ribbon-a:before {\r\n    content: \"\\f348\"\r\n}\r\n\r\n.ion-ribbon-b:before {\r\n    content: \"\\f349\"\r\n}\r\n\r\n.ion-sad:before {\r\n    content: \"\\f34a\"\r\n}\r\n\r\n.ion-sad-outline:before {\r\n    content: \"\\f4d7\"\r\n}\r\n\r\n.ion-scissors:before {\r\n    content: \"\\f34b\"\r\n}\r\n\r\n.ion-search:before {\r\n    content: \"\\f21f\"\r\n}\r\n\r\n.ion-settings:before {\r\n    content: \"\\f2ad\"\r\n}\r\n\r\n.ion-share:before {\r\n    content: \"\\f220\"\r\n}\r\n\r\n.ion-shuffle:before {\r\n    content: \"\\f221\"\r\n}\r\n\r\n.ion-skip-backward:before {\r\n    content: \"\\f222\"\r\n}\r\n\r\n.ion-skip-forward:before {\r\n    content: \"\\f223\"\r\n}\r\n\r\n.ion-social-android:before {\r\n    content: \"\\f225\"\r\n}\r\n\r\n.ion-social-android-outline:before {\r\n    content: \"\\f224\"\r\n}\r\n\r\n.ion-social-angular:before {\r\n    content: \"\\f4d9\"\r\n}\r\n\r\n.ion-social-angular-outline:before {\r\n    content: \"\\f4d8\"\r\n}\r\n\r\n.ion-social-apple:before {\r\n    content: \"\\f227\"\r\n}\r\n\r\n.ion-social-apple-outline:before {\r\n    content: \"\\f226\"\r\n}\r\n\r\n.ion-social-bitcoin:before {\r\n    content: \"\\f2af\"\r\n}\r\n\r\n.ion-social-bitcoin-outline:before {\r\n    content: \"\\f2ae\"\r\n}\r\n\r\n.ion-social-buffer:before {\r\n    content: \"\\f229\"\r\n}\r\n\r\n.ion-social-buffer-outline:before {\r\n    content: \"\\f228\"\r\n}\r\n\r\n.ion-social-chrome:before {\r\n    content: \"\\f4db\"\r\n}\r\n\r\n.ion-social-chrome-outline:before {\r\n    content: \"\\f4da\"\r\n}\r\n\r\n.ion-social-codepen:before {\r\n    content: \"\\f4dd\"\r\n}\r\n\r\n.ion-social-codepen-outline:before {\r\n    content: \"\\f4dc\"\r\n}\r\n\r\n.ion-social-css3:before {\r\n    content: \"\\f4df\"\r\n}\r\n\r\n.ion-social-css3-outline:before {\r\n    content: \"\\f4de\"\r\n}\r\n\r\n.ion-social-designernews:before {\r\n    content: \"\\f22b\"\r\n}\r\n\r\n.ion-social-designernews-outline:before {\r\n    content: \"\\f22a\"\r\n}\r\n\r\n.ion-social-dribbble:before {\r\n    content: \"\\f22d\"\r\n}\r\n\r\n.ion-social-dribbble-outline:before {\r\n    content: \"\\f22c\"\r\n}\r\n\r\n.ion-social-dropbox:before {\r\n    content: \"\\f22f\"\r\n}\r\n\r\n.ion-social-dropbox-outline:before {\r\n    content: \"\\f22e\"\r\n}\r\n\r\n.ion-social-euro:before {\r\n    content: \"\\f4e1\"\r\n}\r\n\r\n.ion-social-euro-outline:before {\r\n    content: \"\\f4e0\"\r\n}\r\n\r\n.ion-social-facebook:before {\r\n    content: \"\\f231\"\r\n}\r\n\r\n.ion-social-facebook-outline:before {\r\n    content: \"\\f230\"\r\n}\r\n\r\n.ion-social-foursquare:before {\r\n    content: \"\\f34d\"\r\n}\r\n\r\n.ion-social-foursquare-outline:before {\r\n    content: \"\\f34c\"\r\n}\r\n\r\n.ion-social-freebsd-devil:before {\r\n    content: \"\\f2c4\"\r\n}\r\n\r\n.ion-social-github:before {\r\n    content: \"\\f233\"\r\n}\r\n\r\n.ion-social-github-outline:before {\r\n    content: \"\\f232\"\r\n}\r\n\r\n.ion-social-google:before {\r\n    content: \"\\f34f\"\r\n}\r\n\r\n.ion-social-google-outline:before {\r\n    content: \"\\f34e\"\r\n}\r\n\r\n.ion-social-googleplus:before {\r\n    content: \"\\f235\"\r\n}\r\n\r\n.ion-social-googleplus-outline:before {\r\n    content: \"\\f234\"\r\n}\r\n\r\n.ion-social-hackernews:before {\r\n    content: \"\\f237\"\r\n}\r\n\r\n.ion-social-hackernews-outline:before {\r\n    content: \"\\f236\"\r\n}\r\n\r\n.ion-social-html5:before {\r\n    content: \"\\f4e3\"\r\n}\r\n\r\n.ion-social-html5-outline:before {\r\n    content: \"\\f4e2\"\r\n}\r\n\r\n.ion-social-instagram:before {\r\n    content: \"\\f351\"\r\n}\r\n\r\n.ion-social-instagram-outline:before {\r\n    content: \"\\f350\"\r\n}\r\n\r\n.ion-social-javascript:before {\r\n    content: \"\\f4e5\"\r\n}\r\n\r\n.ion-social-javascript-outline:before {\r\n    content: \"\\f4e4\"\r\n}\r\n\r\n.ion-social-linkedin:before {\r\n    content: \"\\f239\"\r\n}\r\n\r\n.ion-social-linkedin-outline:before {\r\n    content: \"\\f238\"\r\n}\r\n\r\n.ion-social-markdown:before {\r\n    content: \"\\f4e6\"\r\n}\r\n\r\n.ion-social-nodejs:before {\r\n    content: \"\\f4e7\"\r\n}\r\n\r\n.ion-social-octocat:before {\r\n    content: \"\\f4e8\"\r\n}\r\n\r\n.ion-social-pinterest:before {\r\n    content: \"\\f2b1\"\r\n}\r\n\r\n.ion-social-pinterest-outline:before {\r\n    content: \"\\f2b0\"\r\n}\r\n\r\n.ion-social-python:before {\r\n    content: \"\\f4e9\"\r\n}\r\n\r\n.ion-social-reddit:before {\r\n    content: \"\\f23b\"\r\n}\r\n\r\n.ion-social-reddit-outline:before {\r\n    content: \"\\f23a\"\r\n}\r\n\r\n.ion-social-rss:before {\r\n    content: \"\\f23d\"\r\n}\r\n\r\n.ion-social-rss-outline:before {\r\n    content: \"\\f23c\"\r\n}\r\n\r\n.ion-social-sass:before {\r\n    content: \"\\f4ea\"\r\n}\r\n\r\n.ion-social-skype:before {\r\n    content: \"\\f23f\"\r\n}\r\n\r\n.ion-social-skype-outline:before {\r\n    content: \"\\f23e\"\r\n}\r\n\r\n.ion-social-snapchat:before {\r\n    content: \"\\f4ec\"\r\n}\r\n\r\n.ion-social-snapchat-outline:before {\r\n    content: \"\\f4eb\"\r\n}\r\n\r\n.ion-social-tumblr:before {\r\n    content: \"\\f241\"\r\n}\r\n\r\n.ion-social-tumblr-outline:before {\r\n    content: \"\\f240\"\r\n}\r\n\r\n.ion-social-tux:before {\r\n    content: \"\\f2c5\"\r\n}\r\n\r\n.ion-social-twitch:before {\r\n    content: \"\\f4ee\"\r\n}\r\n\r\n.ion-social-twitch-outline:before {\r\n    content: \"\\f4ed\"\r\n}\r\n\r\n.ion-social-twitter:before {\r\n    content: \"\\f243\"\r\n}\r\n\r\n.ion-social-twitter-outline:before {\r\n    content: \"\\f242\"\r\n}\r\n\r\n.ion-social-usd:before {\r\n    content: \"\\f353\"\r\n}\r\n\r\n.ion-social-usd-outline:before {\r\n    content: \"\\f352\"\r\n}\r\n\r\n.ion-social-vimeo:before {\r\n    content: \"\\f245\"\r\n}\r\n\r\n.ion-social-vimeo-outline:before {\r\n    content: \"\\f244\"\r\n}\r\n\r\n.ion-social-whatsapp:before {\r\n    content: \"\\f4f0\"\r\n}\r\n\r\n.ion-social-whatsapp-outline:before {\r\n    content: \"\\f4ef\"\r\n}\r\n\r\n.ion-social-windows:before {\r\n    content: \"\\f247\"\r\n}\r\n\r\n.ion-social-windows-outline:before {\r\n    content: \"\\f246\"\r\n}\r\n\r\n.ion-social-wordpress:before {\r\n    content: \"\\f249\"\r\n}\r\n\r\n.ion-social-wordpress-outline:before {\r\n    content: \"\\f248\"\r\n}\r\n\r\n.ion-social-yahoo:before {\r\n    content: \"\\f24b\"\r\n}\r\n\r\n.ion-social-yahoo-outline:before {\r\n    content: \"\\f24a\"\r\n}\r\n\r\n.ion-social-yen:before {\r\n    content: \"\\f4f2\"\r\n}\r\n\r\n.ion-social-yen-outline:before {\r\n    content: \"\\f4f1\"\r\n}\r\n\r\n.ion-social-youtube:before {\r\n    content: \"\\f24d\"\r\n}\r\n\r\n.ion-social-youtube-outline:before {\r\n    content: \"\\f24c\"\r\n}\r\n\r\n.ion-soup-can:before {\r\n    content: \"\\f4f4\"\r\n}\r\n\r\n.ion-soup-can-outline:before {\r\n    content: \"\\f4f3\"\r\n}\r\n\r\n.ion-speakerphone:before {\r\n    content: \"\\f2b2\"\r\n}\r\n\r\n.ion-speedometer:before {\r\n    content: \"\\f2b3\"\r\n}\r\n\r\n.ion-spoon:before {\r\n    content: \"\\f2b4\"\r\n}\r\n\r\n.ion-star:before {\r\n    content: \"\\f24e\"\r\n}\r\n\r\n.ion-stats-bars:before {\r\n    content: \"\\f2b5\"\r\n}\r\n\r\n.ion-steam:before {\r\n    content: \"\\f30b\"\r\n}\r\n\r\n.ion-stop:before {\r\n    content: \"\\f24f\"\r\n}\r\n\r\n.ion-thermometer:before {\r\n    content: \"\\f2b6\"\r\n}\r\n\r\n.ion-thumbsdown:before {\r\n    content: \"\\f250\"\r\n}\r\n\r\n.ion-thumbsup:before {\r\n    content: \"\\f251\"\r\n}\r\n\r\n.ion-toggle:before {\r\n    content: \"\\f355\"\r\n}\r\n\r\n.ion-toggle-filled:before {\r\n    content: \"\\f354\"\r\n}\r\n\r\n.ion-transgender:before {\r\n    content: \"\\f4f5\"\r\n}\r\n\r\n.ion-trash-a:before {\r\n    content: \"\\f252\"\r\n}\r\n\r\n.ion-trash-b:before {\r\n    content: \"\\f253\"\r\n}\r\n\r\n.ion-trophy:before {\r\n    content: \"\\f356\"\r\n}\r\n\r\n.ion-tshirt:before {\r\n    content: \"\\f4f7\"\r\n}\r\n\r\n.ion-tshirt-outline:before {\r\n    content: \"\\f4f6\"\r\n}\r\n\r\n.ion-umbrella:before {\r\n    content: \"\\f2b7\"\r\n}\r\n\r\n.ion-university:before {\r\n    content: \"\\f357\"\r\n}\r\n\r\n.ion-unlocked:before {\r\n    content: \"\\f254\"\r\n}\r\n\r\n.ion-upload:before {\r\n    content: \"\\f255\"\r\n}\r\n\r\n.ion-usb:before {\r\n    content: \"\\f2b8\"\r\n}\r\n\r\n.ion-videocamera:before {\r\n    content: \"\\f256\"\r\n}\r\n\r\n.ion-volume-high:before {\r\n    content: \"\\f257\"\r\n}\r\n\r\n.ion-volume-low:before {\r\n    content: \"\\f258\"\r\n}\r\n\r\n.ion-volume-medium:before {\r\n    content: \"\\f259\"\r\n}\r\n\r\n.ion-volume-mute:before {\r\n    content: \"\\f25a\"\r\n}\r\n\r\n.ion-wand:before {\r\n    content: \"\\f358\"\r\n}\r\n\r\n.ion-waterdrop:before {\r\n    content: \"\\f25b\"\r\n}\r\n\r\n.ion-wifi:before {\r\n    content: \"\\f25c\"\r\n}\r\n\r\n.ion-wineglass:before {\r\n    content: \"\\f2b9\"\r\n}\r\n\r\n.ion-woman:before {\r\n    content: \"\\f25d\"\r\n}\r\n\r\n.ion-wrench:before {\r\n    content: \"\\f2ba\"\r\n}\r\n\r\n.ion-xbox:before {\r\n    content: \"\\f30c\"\r\n}\r\n"
  },
  {
    "path": "base/icons.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title></title>\n    <link href=\"https://fonts.googleapis.com/css?family=Dosis|Raleway:400,700|Roboto:300,400,900,\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n    <link rel=\"stylesheet\" href=\"reset.css\">\n    <link rel=\"stylesheet\" href=\"mobileui.css\">\n    <link rel=\"stylesheet\" href=\"colors.css\">\n    <link rel=\"stylesheet\" href=\"icons.css\">\n    <link rel=\"stylesheet\" href=\"../button/style.css\">\n    <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n    <style>\n      .content { margin-left:50px}\n    </style>\n  </head>\n  <body class=\"content\">\n    <!-- BEGIN -->\n    <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">Icons</h2>\n    <p>\n      MobileUI also comes with its own free and open-source icon font, <a href=\"https://ionicons.com/v2/\" target=\"_blank\">Ionicons</a>, with over 500 icons to choose from.\n    </p>\n    <p>\n      The icons are in base MobileUI, for use just install base the command:\n    </p>\n    <pre>mobileui install base</pre>\n    <p>\n      And add <code>icon</code> and the Ionicon class name for the icon to show, which can be easily looked up on the <a href=\"https://ionicons.com/v2/\" target=\"_blank\">Ionicons</a> homepage. You can change the color add class colors for text.\n    </p>\n    <textarea class=\"bind-code\" mode=\"text/html\" custom-class=\"result-icon\">\n<i class=\"icon ion-navicon\"></i>\n<i class=\"icon ion-heart red\"></i>\n<i class=\"icon ion-refresh\"></i>\n<i class=\"icon ion-chatbox-working\"></i>\n<i class=\"icon ion-wifi green\"></i>\n<i class=\"icon ion-gear-a\"></i>\n<i class=\"icon ion-trash-a red\"></i>\n<i class=\"icon ion-clipboard blue\"></i>\n<i class=\"icon ion-pie-graph\"></i>\n<i class=\"icon ion-person-add\"></i>\n<br>\n<i class=\"icon ion-ios-heart-outline\"></i>\n<i class=\"icon ion-ios-home-outline\"></i>\n<i class=\"icon ion-ios-cloud-upload-outline\"></i>\n<i class=\"icon ion-ios-loop\"></i>\n<i class=\"icon ion-ios-cart-outline\"></i>\n<i class=\"icon ion-ios-gear-outline\"></i>\n<i class=\"icon ion-ios-alarm-outline\"></i>\n<i class=\"icon ion-ios-calendar-outline\"></i>\n<i class=\"icon ion-ios-camera-outline\"></i>\n<i class=\"icon ion-ios-location-outline\"></i>\n<br>\n<i class=\"icon ion-android-favorite\"></i>\n<i class=\"icon ion-android-alarm-clock\"></i>\n<i class=\"icon ion-android-calendar\"></i>\n<i class=\"icon ion-android-star-outline\"></i>\n<i class=\"icon ion-android-star-half\"></i>\n<i class=\"icon ion-android-star\"></i>\n<i class=\"icon ion-android-restaurant\"></i>\n<i class=\"icon ion-android-drafts\"></i>\n<i class=\"icon ion-android-delete\"></i>\n<i class=\"icon ion-android-happy\"></i>\n</textarea>\n    <!-- DONE -->\n    <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n    <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n    <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n    <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "base/install.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title></title>\n    <link href=\"https://fonts.googleapis.com/css?family=Dosis|Raleway:400,700|Roboto:300,400,900,\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n    <link rel=\"stylesheet\" href=\"reset.css\">\n    <link rel=\"stylesheet\" href=\"mobileui.css\">\n    <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n    <style>\n      .content { margin-left:50px}\n    </style>\n  </head>\n  <body class=\"content\">\n    <!-- BEGIN -->\n    <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">Getting started</h2>\n    <p>\n      MobileUI was created thinking of making your hybrid application <strong>faster</strong> and <strong>smaller</strong>, since you only install what you\n      are really going to use for UI.\n    </p>\n    <p>\n      Certainly, you will love using it in  <a href=\"https://developers.google.com/web/progressive-web-apps/\" target=\"_blank\">Progressive Web Apps</a>\n      and <a href=\"https://cordova.apache.org/\" target=\"_blank\">Apache Cordova Apps</a>.\n      You can use only the components you want in your projects created with <a href=\"http://phonegap.com/\" target=\"_blank\">PhoneGap</a>,\n      <a href=\"http://ionicframework.com/\" target=\"_blank\">Ionic Framework</a>, <a href=\"https://onsen.io/\" target=\"_blank\">Onsen UI</a>,\n      <a href=\"http://framework7.io/\" target=\"_blank\">Framework7</a> and others focused on creating web apps.\n    </p>\n    <p>\n      A rich variety of UI components specially designed for mobile apps. MobileUI provides tabs, side menu, stack navigation and tons of other components\n      such as lists and forms. Some of the existing components are displayed differently on Android and iOS, with automatic styling that will change the\n      appearance of the app based on the platform.\n    </p>\n    <p>\n      The Installation is straightforward, but first, you need to install <a href=\"https://nodejs.org\" target=\"_blank\">Node.js</a>.\n      Then, install Cordova via terminal <strong>npm install -g cordova</strong>(add sudo if you are in Linux).      \n    </p>\n    <p>\n      After that, just execute the command in your terminal:\n    </p>\n    <pre>npm install -g mobileui</pre>\n    <p>To check if MobileUI is installed or not, open the terminal and type <strong>mobileui</strong></p>\n    \n    <h4><strong>Simple Example</strong></h4>\n    \n    <p>Let's create a Simple Example using MobileUI and Cordova:</p>\n<pre>\ncordova create apptest\ncd apptest\nmobileui install template cordova-blank\nmobileui install header\nmobileui preview\n</pre>\n    <p>Let's check the commands:</p>\n    <table class=\"tableDoc\">\n      <tr>\n        <td>\n          <code>cordova create apptest</code>\n        </td>\n        <td>Create a cordova project</td>\n      </tr>\n      <tr>\n        <td>\n          <code>cd apptest</code>\n        </td>\n        <td> Change the directory to your project</td>\n      </tr>\n      <tr>\n        <td>\n          <code>mobileui install template cordova-blank</code>\n        </td>\n        <td>Clears the sample files created by the Cordova</td>\n      </tr>\n      <tr>\n        <td>\n          <code>mobileui install header</code>\n        </td>\n        <td>For sample we can take header component</td>\n      </tr>\n      <tr>\n        <td>\n          <code>mobileui preview</code>\n        </td>\n        <td>Emulates the app to run in the browser</td>\n      </tr>\n    </table>\n\n    <p> After that add the below code in index.html  </p>\n<textarea class=\"bind-just-code\" mode=\"text/html\">\n<div class=\"header purple\">\n  <button class=\"left icon ion-navicon\" name=\"button\"></button>\n  <h1>Application title</h1>\n</div></textarea>\n\n    <p>By default, an HTTP server will run on port 8080, but you can change it by passing the <code>--port</code> parameter with the desired port, eg <code>--port 8000</code></p>\n    <!-- DONE -->\n    <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n    <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n    <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n    <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "base/mobileui.css",
    "content": "* {\r\n    box-sizing: border-box;\r\n    outline: none\r\n}\r\nbody {\r\n    font-family: Roboto,\"Helvetica Neue\",sans-serif;\r\n    -webkit-overflow-scrolling: touch;\r\n    overflow: hidden;\r\n    position: absolute;\r\n}\r\nbody.platform-ios {\r\n    font-family: -apple-system,\"Helvetica Neue\",Roboto,sans-serif;\r\n}\r\na {\r\n  cursor: pointer;\r\n  color: #000;\r\n  text-decoration: none;\r\n}\r\n/*Create the scrollable viewport of your app.*/\r\n.content {\r\n  position: absolute;\r\n  width: 100%;\r\n  height: 100%;\r\n  overflow: auto;\r\n}\r\n/*Floats any element to the left.*/\r\n.left {\r\n    float: left\r\n}\r\n/*Floats any element to the right.*/\r\n.right {\r\n    float: right\r\n}\r\n/*Floats any element to the top.*/\r\n.top {\r\n    position: absolute;\r\n    top: 0;\r\n    left: 0;\r\n}\r\n/*Floats any element to the bottom.*/\r\n.bottom {\r\n    position: absolute;\r\n    bottom: 0;\r\n    left: 0;\r\n}\r\n/*Align text, icons, and elements to the left.*/\r\n.align-left {\r\n    text-align: left;\r\n}\r\n/*Align text, icons, and elements to the center.*/\r\n.align-center {\r\n    text-align: center;\r\n}\r\n/*Align text, icons, and elements to the right.*/\r\n.align-right {\r\n    text-align: right;\r\n}\r\n/*Add a small border in element.*/\r\n.border {\r\n  border-width: 1px;\r\n  border-style: solid;\r\n}\r\n/*Hide a element.*/\r\n.hidden {\r\n  display: none;\r\n}\r\n/*Define 90% of opacity.*/\r\n.opacity-90 {\r\n  opacity: 0.9;\r\n}\r\n/*Define 80% of opacity.*/\r\n.opacity-80 {\r\n  opacity: 0.8;\r\n}\r\n/*Define 70% of opacity.*/\r\n.opacity-70 {\r\n  opacity: 0.7;\r\n}\r\n/*Define 60% of opacity.*/\r\n.opacity-60 {\r\n  opacity: 0.6;\r\n}\r\n/*Define 50% of opacity.*/\r\n.opacity-50 {\r\n  opacity: 0.5;\r\n}\r\n/*Define 40% of opacity.*/\r\n.opacity-40 {\r\n  opacity: 0.4;\r\n}\r\n/*Define 30% of opacity.*/\r\n.opacity-30 {\r\n  opacity: 0.3;\r\n}\r\n/*Define 20% of opacity.*/\r\n.opacity-20 {\r\n  opacity: 0.2;\r\n}\r\n/*Define 10% of opacity.*/\r\n.opacity-10 {\r\n  opacity: 0.1;\r\n}\r\n/*Create a horizontal line, you need define color using <code>base</code> colors.*/\r\n.line {\r\n  width: 100%;\r\n  height: 1px;\r\n  display: block;\r\n  clear: both;\r\n}\r\n.icon {\r\n    font-size: 28px;\r\n}\r\nimg, video {\r\n    max-width: 100%\r\n}\r\np {\r\n    margin-top: 5px;\r\n    margin-bottom: 5px\r\n}\r\n/*Add an internal space.*/\r\n.padding {\r\n    padding: 10px\r\n}\r\n/*Add a padding on the top.*/\r\n.padding-top {\r\n    padding-top: 10px;\r\n}\r\n/*Add an external space.*/\r\n.margin {\r\n    margin: 10px\r\n}\r\nspan.padding {\r\n  padding: 6px;\r\n  padding-top: 2px;\r\n  padding-bottom: 2px;\r\n}\r\n/*Add a small rounded border.*/\r\n.radius {\r\n    border-radius: 4px;\r\n}\r\n/*Add a large rounded border.*/\r\n.radius-big {\r\n    border-radius: 22px;\r\n}\r\n/*Add a circular border.*/\r\n.circle {\r\n    border-radius: 50%;\r\n}\r\n/*Adds a small border just to the left.*/\r\n.radius-left {\r\n    border-top-left-radius: 4px;\r\n    border-bottom-left-radius: 4px\r\n}\r\n/*Adds a small border just to the right.*/\r\n.radius-right {\r\n    border-top-right-radius: 4px;\r\n    border-bottom-right-radius: 4px\r\n}\r\n/*Adds a small border just to the top.*/\r\n.radius-top {\r\n    border-top-left-radius: 4px;\r\n    border-top-right-radius: 4px;\r\n}\r\n/*Limit the display of a text in only one line with periods at the end.*/\r\n.ellipsis {\r\n    overflow: hidden;\r\n    text-overflow: ellipsis;\r\n    white-space: nowrap;\r\n}\r\n/*Create a shadow on an element (not text).*/\r\n.shadow {\r\n    box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.2);\r\n}\r\n/*Add a space vertically.*/\r\n.space {\r\n    width: 100%;\r\n    height: 20px;\r\n}\r\n/*Add a big space vertically.*/\r\n.space-big {\r\n    width: 100%;\r\n    height: 50px;\r\n}\r\n/*Add a huge space vertically.*/\r\n.space-huge {\r\n    width: 100%;\r\n    height: 100px;\r\n}\r\n/*Add a margin on the bottom.*/\r\n.margin-bottom {\r\n  margin-bottom: 10px;\r\n}\r\n/*Add a margin on the top.*/\r\n.margin-top {\r\n  margin-top: 10px;\r\n}\r\n/*Create a shadow in a text.*/\r\n.text-shadow {\r\n    text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.2);\r\n}\r\n/*Leave the text small.*/\r\n.text-small {\r\n    font-size: 14px;\r\n}\r\n.text-small .icon,\r\n.text-small.icon {\r\n  font-size: 14px !important;\r\n}\r\n/*Leave the icon small.*/\r\n.icon-small {\r\n  font-size: 14px !important;\r\n}\r\n/*Leave the icon big.*/\r\n.icon-big {\r\n  font-size: 50px !important; \r\n}\r\n/*Leave the icon huge.*/\r\n.icon-huge {\r\n  font-size: 65px !important; \r\n}\r\n/*Leave the icon extra-huge.*/\r\n.icon-extra-huge {\r\n  font-size: 120px !important; \r\n}\r\n/*Leave the text large.*/\r\n.text-big {\r\n    font-size: 22px\r\n}\r\n.text-big .icon,\r\n.text-big.icon {\r\n    font-size: 22px !important;\r\n}\r\n/*Leave the text extra-huge.*/\r\n.text-extra-huge {\r\n    font-size: 65px\r\n}\r\n.text-extra-huge .icon,\r\n.text-extra-huge.icon {\r\n    font-size: 65px !important;\r\n}\r\n/*Leave the text huge.*/\r\n.text-huge {\r\n    font-size: 32px\r\n}\r\n.text-huge .icon,\r\n.text-huge.icon {\r\n    font-size: 32px !important;\r\n}\r\n/*Leave the text thinner.*/\r\n.text-light {\r\n    font-weight: 300;\r\n}\r\n/*Leave a bold text.*/\r\n.text-bold {\r\n    font-weight: bold;\r\n}\r\n/*Leave the text thicker.*/\r\n.text-strong {\r\n    font-weight: 800;\r\n}\r\n/*Floats an element in the footer to the right.*/\r\n.float-bottom-right {\r\n    position: fixed;\r\n    right: 15px;\r\n    bottom: 15px;\r\n}\r\n/*Floats an element in the footer to the left.*/\r\n.float-bottom-left {\r\n    position: fixed;\r\n    left: 15px;\r\n    bottom: 15px;\r\n}\r\n/*Floats an element in the footer to the left.*/\r\n.float-bottom-center {\r\n    position: fixed;\r\n    margin: auto;\r\n    left: 0;\r\n    bottom: 15px;\r\n}\r\n/*Create a completely round icon.*/\r\n.icon-circle {\r\n    width: 40px;\r\n    height: 40px;\r\n    border-radius: 50%;\r\n    text-align: center;\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n}\r\n.icon-circle-small {\r\n    width: 25px;\r\n    height: 25px;\r\n    border-radius: 50%;\r\n    text-align: center;\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n}\r\n.icon-circle-small i {\r\n    font-size: 15px;\r\n}\r\n.icon-circle-big {\r\n    width: 80px;\r\n    height: 80px;\r\n    border-radius: 50%;\r\n    text-align: center;\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n}\r\n.icon-circle-big i {\r\n    font-size: 70px;\r\n}\r\n.backdrop {\r\n  position: fixed;\r\n  top: 0;\r\n  left: 0;\r\n  width: 100%;\r\n  height: 100%;\r\n  background-color: #000;\r\n  opacity: .01;\r\n  z-index: 9999;\r\n  transition-duration: 280ms;\r\n}\r\n.backdrop.show {\r\n  opacity: 0.4;\r\n}\r\n.mark {\r\n  border-left-width: 8px !important;\r\n}\r\n"
  },
  {
    "path": "base/reset.css",
    "content": "* {\r\n    -webkit-tap-highlight-color: rgba(0,0,0,0);\r\n    margin: 0;\r\n    padding: 0;\r\n    box-sizing: border-box;\r\n    outline: none;\r\n}\r\nbody {\r\n    -webkit-touch-callout: none;\r\n    -webkit-text-size-adjust: none;\r\n    -webkit-user-select: none;\r\n    background-color:#fff;\r\n    font-size:14px;\r\n    height:100%;\r\n    margin:0px;\r\n    padding:0px;\r\n    width:100%;\r\n}\r\nh1, h2, h3, h4, h5, h6 {\r\n    font-size: 100%;\r\n    font-weight: 400;\r\n}\r\n"
  },
  {
    "path": "base/templates.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title></title>\n    <link href=\"https://fonts.googleapis.com/css?family=Dosis|Raleway:400,700|Roboto:300,400,900,\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n    <link rel=\"stylesheet\" href=\"reset.css\">\n    <link rel=\"stylesheet\" href=\"mobileui.css\">\n    <link rel=\"stylesheet\" href=\"colors.css\">\n    <link rel=\"stylesheet\" href=\"icons.css\">\n    <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n    <style>\n      .content { margin-left:50px}\n    </style>\n  </head>\n  <body class=\"content\">\n    <!-- BEGIN -->\n    <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">Templates</h2>\n    <p>\n      To make application development faster and easier you can use some templates available through MobileUI.\n    </p>\n    <p>\n      To use a template you need to install with the command:\n    </p>\n    <pre>mobileui install template name-of-template</pre>\n    <p>\n      See list of template for this moment:\n    </p>\n    <div class=\"content-table\">\n      <table class=\"tableDoc\">\n        <tbody>\n          <tr>\n            <th>Template</th>\n            <th>Description</th>\n          </tr>\n          <tr>\n            <td><code>cordova-blank</code></td>\n            <td>Create a files base to app created in Apache Cordova.</td>\n          </tr>\n          <tr>\n            <td><code>cordova-angular1</code></td>\n            <td>Create a scaffold project using AngularJS</td>\n          </tr>\n          <tr>\n            <td><code>cordova-phaser</code></td>\n            <td>Create a scaffold project using Phaser.</td>\n          </tr>\n          <tr>\n            <td><code>cordova-vuejs</code></td>\n            <td>Create a scaffold project using VueJS.</td>\n          </tr>\n        </tbody>\n      </table>\n    </div>\n\n    <!-- DONE -->\n    <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n    <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n    <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n    <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "button/component.json",
    "content": "{\n  \"name\":\"button\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": [\n    \"base\"\n  ]\n}\n"
  },
  {
    "path": "button/index.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title></title>\n    <link href=\"https://fonts.googleapis.com/css?family=Dosis|Raleway:400,700|Roboto:300,400,900,\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n    <link rel=\"stylesheet\" href=\"../base/reset.css\">\n    <link rel=\"stylesheet\" href=\"../base/mobileui.css\">\n    <link rel=\"stylesheet\" href=\"../base/colors.css\">\n    <link rel=\"stylesheet\" href=\"../base/icons.css\">\n    <link rel=\"stylesheet\" href=\"../header/style.css\">\n    <link rel=\"stylesheet\" href=\"../list/style.css\">\n    <link rel=\"stylesheet\" href=\"style.css\">\n    <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n    <style>\n      .content { margin-left:50px}\n    </style>\n  </head>\n  <body class=\"content\">\n    <!-- BEGIN -->\n    <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">Button</h2>\n    <p>\n      You can use <a href=\"#colors\">colors theme</a> and <a href=\"#icons\">icons</a> in button. If you need use base mode just add theme color name,\n      you can alter border color using class <code>border-[COLOR]</code>, alter text color using class <code>text-[COLOR]</code> and add radius border using class <code>radius</code>.\n    </p>\n    <p>For use icon in button you need add class <code>icon-text</code> and you can use diferent size, see the examples below.</p>\n    <p>\n      To use this component you need install with the command:\n    </p>\n    <div class=\"dependency tooltip\">\n      <strong>Dependency:</strong> <code>base</code>.\n      <span class=\"tooltiptext\">The dependencies will be installed together with this module</span>\n    </div>\n    <pre>mobileui install button</pre>\n    <!-- _DOC_GENERATE_CSS_DOC -->\n    <p>You can use all features the <a href=\"#base\">base</a> MobileUI in this component.</p>\n\n<textarea class=\"bind-code\" mode=\"text/html\">\n<button class=\"green\">Login with email</button>\n<button class=\"border-green text-green\">Create a new user</button>\n<p>Customize as you wish:</p>\n<button class=\"brown border-brown-800 text-brown-50 radius icon-text\">\n  <i class=\"icon ion-ios-settings-strong\"></i>\n  Setting\n</button>\n<button class=\"brown border-brown-800 text-brown-50 radius icon-text icon-right\">\n  <i class=\"icon ion-ios-settings-strong\"></i>\n  Setting\n</button>\n<p>Social login:</p>\n<button class=\"blue icon-text\">\n  <i class=\"icon ion-social-facebook\"></i>\n  Login with Facebook\n</button>\n<p>Different sizes:</p>\n<button class=\"red icon-text big\">\n  <i class=\"icon ion-trash-b\"></i>\n  Delete\n</button>\n<button class=\"cyan\">Edit</button>\n<button class=\"purple small\">View</button>\n<p>Full size:</p>\n<button class=\"pink full\">View more detail</button>\n<p>Group buttons:</p>\n<div class=\"buttons-group full\">\n  <button class=\"teal border-teal-700 radius-left\">Left</button>\n  <button class=\"teal border-teal-700\">Middle</button>\n  <button class=\"teal-700 border-teal-700\">Middle</button>\n  <button class=\"teal border-teal-700 radius-right\">Right</button>\n</div>\n<p>And different size in group:</p>\n<div class=\"buttons-group full small\">\n  <button class=\"red border-red-600 radius-left\">Left</button>\n  <button class=\"red border-red-600\">Middle</button>\n  <button class=\"red border-red-600 radius-right\">Right</button>\n</div></textarea>\n    <p>Another type button used in Android is a Tap, for this you can put <code>circle</code> class in button. You can controller what position button.</p>\n<textarea class=\"bind-code\" mode=\"text/html\" height-preview=\"400px\" replace=\"body,div\">\n<body class=\"padding grey-200\">\n  <button class=\"green circle icon ion-plus\"></button>\n  <button class=\"red circle icon ion-headphone shadow\"></button>\n  <button class=\"green circle icon ion-chatbox shadow float-bottom-right\"></button>\n  <button class=\"blue circle icon ion-ios-gear shadow float-bottom-left\"></button>\n</body></textarea>\n    <!-- DONE -->\n    <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n    <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n    <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n    <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "button/script.js",
    "content": "document.addEventListener('click', function(e){\n  if(SO.code !== 1) return false;\n  var target = e.target;\n  if (target.tagName.toLowerCase() !== 'button') return false;\n  var rect = target.getBoundingClientRect();\n  var ripple = target.querySelector('.ripple');\n  if (!ripple) {\n      ripple = document.createElement('span');\n      ripple.className = 'ripple';\n      ripple.style.height = ripple.style.width = Math.max(rect.width, rect.height) + 'px';\n      target.appendChild(ripple);\n  }\n  ripple.classList.remove('show');\n  var top = e.pageY - rect.top - ripple.offsetHeight / 2 - document.body.scrollTop;\n  var left = e.pageX - rect.left - ripple.offsetWidth / 2 - document.body.scrollLeft;\n  ripple.style.top = top + 'px';\n  ripple.style.left = left + 'px';\n  ripple.classList.add('show');\n  return false;\n}, false);\n"
  },
  {
    "path": "button/style.css",
    "content": "button {\r\n  -webkit-transition: color 200ms ease;\r\n  -moz-transition: color 200ms ease;\r\n  -ms-transition: color 200ms ease;\r\n  -o-transition: color 200ms ease;\r\n  transition: color 200ms ease;\r\n  font-size: 14px;\r\n  border: none;\r\n  background-color: rgba(0,0,0,0);\r\n  color: #444;\r\n  position: relative;\r\n  display: inline-block;\r\n  margin: 0;\r\n  padding: 0 12px;\r\n  min-height: 42px;\r\n  vertical-align: top;\r\n  text-align: center;\r\n  text-overflow: ellipsis;\r\n  font-size: 16px;\r\n  line-height: 42px;\r\n  cursor: pointer;\r\n  overflow: hidden;\r\n}\r\nbutton[disabled] {\r\n  opacity: 0.8;\r\n}\r\nbutton .icon {\r\n  position: absolute;\r\n  left: 10px;\r\n}\r\nbutton.circle {\r\n  width: 42px;\r\n  height: 42px;\r\n  text-align: center;\r\n  padding: 0;\r\n  line-height: 0;\r\n  font-size: 22px;\r\n  z-index: 10;\r\n}\r\n/*Determines that the button will have an icon.*/\r\nbutton.icon-text {\r\n  padding-left: 40px;\r\n}\r\nbutton.icon-text i{\r\n  font-size: 22px;\r\n}\r\n/*If the button has the class <code>icon-text</code> and <code>icon-right</code> the icon will be aligned to the right.*/\r\nbutton.icon-text.icon-right {\r\n  padding-left: 12px;\r\n  padding-right: 40px;\r\n  position: relative;\r\n}\r\nbutton.icon-right i {\r\n  position: absolute;\r\n  right: 12px;\r\n  text-align: right;\r\n  margin-top: 2px;\r\n}\r\nbutton[class*=\"border-\"] {\r\n  min-height: 40px;\r\n  line-height: 40px;\r\n}\r\n/*Leave the button occupying 100% width of the screen.*/\r\nbutton.full {\r\n  width: 100%;\r\n}\r\n/*Leave the big button.*/\r\n.buttons-group.big button,\r\nbutton.big  {\r\n  font-size: 22px;\r\n  min-height: 50px;\r\n  line-height: 50px;\r\n}\r\nbutton.circle.big {\r\n  width: 50px;\r\n  height: 50px;\r\n  font-size: 28px;\r\n}\r\nbutton.big.icon-text {\r\n  padding-left: 40px;\r\n}\r\nbutton.big.icon-text.icon-right {\r\n  padding-left: 12px;\r\n  padding-right: 40px;\r\n}\r\nbutton.big.icon-text i {\r\n  font-size: 26px;\r\n}\r\n/*Leave the small button.*/\r\n.buttons-group.small button,\r\nbutton.small {\r\n  font-size: 12px;\r\n  min-height: 30px;\r\n  line-height: 30px;\r\n}\r\nbutton.circle.small {\r\n  width: 30px;\r\n  height: 30px;\r\n  font-size: 18px;\r\n}\r\nbutton.small.icon-text {\r\n  padding-left: 30px;\r\n}\r\nbutton.small.icon-text.icon-right {\r\n  padding-left: 12px;\r\n  padding-right: 35px;\r\n}\r\nbutton.small.icon-text i {\r\n  font-size: 18px;\r\n}\r\n/*hugebutton.*/\r\n.buttons-group.huge button,\r\nbutton.huge  {\r\n  font-size: 32px;\r\n  min-height: 70px;\r\n  line-height: 70px;\r\n}\r\nbutton.circle.huge {\r\n  width: 70px;\r\n  height: 70px;\r\n  font-size: 32px;\r\n}\r\nbutton.huge.icon-text {\r\n  padding-left: 40px;\r\n}\r\nbutton.huge.icon-text.icon-right {\r\n  padding-left: 12px;\r\n  padding-right: 40px;\r\n}\r\nbutton.huge.icon-text i {\r\n  font-size: 32px;\r\n}\r\n/*Create groups of buttons*/\r\n.buttons-group {\r\n  display: inline-block;\r\n}\r\n.buttons-group button {\r\n  float: left;\r\n  margin-left: -1px;\r\n}\r\n.buttons-group button:first-child {\r\n  margin-left: 0;\r\n}\r\n.buttons-group.full {\r\n  display: flex;\r\n}\r\n.buttons-group.full button {\r\n  flex: 1;\r\n}\r\n.ripple {\r\n  position: absolute;\r\n  background: rgba(255,255,255,.25);\r\n  border-radius: 100%;\r\n  -webkit-transform: scale(0);\r\n  -moz-transform: scale(0);\r\n  -ms-transform: scale(0);\r\n  -o-transform: scale(0);\r\n  transform: scale(0);\r\n  pointer-events: none;\r\n}\r\n.ripple.show {\r\n  -webkit-animation: ripple .5s ease-out;\r\n  -moz-animation: ripple .5s ease-out;\r\n  -o-animation: ripple .5s ease-out;\r\n  animation: ripple .5s ease-out;\r\n}\r\n@-webkit-keyframes\r\n  ripple { to {\r\n   -webkit-transform: scale(1.5);\r\n   opacity: 0;\r\n  }\r\n}\r\n@-moz-keyframes\r\n  ripple { to {\r\n   -moz-transform: scale(1.5);\r\n   opacity: 0;\r\n  }\r\n}\r\n@-o-keyframes\r\n  ripple { to {\r\n   -o-transform: scale(1.5);\r\n   opacity: 0;\r\n  }\r\n}\r\n@keyframes\r\n  ripple { to {\r\n   transform: scale(1.5);\r\n   opacity: 0;\r\n  }\r\n}\r\n"
  },
  {
    "path": "chart-bar/component.json",
    "content": "{\n  \"name\":\"chart-bar\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": [\n    \"base\"\n  ]\n}\n"
  },
  {
    "path": "chart-bar/index.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <title></title>\n  <link href=\"https://fonts.googleapis.com/css?family=Dosis|Raleway:400,700|Roboto:300,400,900,\" rel=\"stylesheet\">\n  <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n  <link rel=\"stylesheet\" href=\"../base/reset.css\">\n  <link rel=\"stylesheet\" href=\"../base/mobileui.css\">\n  <link rel=\"stylesheet\" href=\"../base/colors.css\">\n  <link rel=\"stylesheet\" href=\"../base/icons.css\">\n  <link rel=\"stylesheet\" href=\"../header/style.css\">\n  <link rel=\"stylesheet\" href=\"../button/style.css\">\n  <link rel=\"stylesheet\" href=\"../list/style.css\">\n  <link rel=\"stylesheet\" href=\"../cover/style.css\">\n  <link rel=\"stylesheet\" href=\"style.css\">\n  <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n  <style>\n    .content-land {\n      margin-left: 50px\n    }\n  </style>\n  <script type=\"text/javascript\" src=\"script.js\"></script>\n</head>\n<body class=\"content-land\">\n  <!-- BEGIN -->\n  <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">Chart Bar</h2>\n  <p>\n    This component provides an efficient and customizable bar chart using the capabilities of the <code>base</code>.\n  </p>\n  <p>\n    To use this component you need install with the command:\n  </p>\n  <div class=\"dependency tooltip\">\n    <strong>Dependency:</strong> <code>base</code>.\n    <span class=\"tooltiptext\">The dependencies will be installed together with this module</span>\n  </div>\n  <pre>mobileui install chart-bar</pre>\n  <!-- _DOC_GENERATE_CSS_DOC -->\n<textarea class=\"bind-code\" mode=\"text/html\" header-absolute=\"true\" replace=\"body,div|grey-100,grey-100 body\" height-preview=\"650px\" border=\"true\">\n<body class=\"has-header grey-100\">\n  <div class=\"header blue-grey\">\n    <div class=\"left\">\n      <button class=\"icon ion-navicon\"></button>\n    </div>\n    <h1>DASHBOARD</h1>\n    <div class=\"right\">\n      <button class=\"icon ion-calendar\"></button>\n    </div>\n  </div>\n\n  <div class=\"blue-grey padding\">\n    <ul class=\"chart-bar line-white text-light text-small\">\n      <li>\n        <span class=\"white opacity-60 shadow radius-top\" style=\"height:55%\" title=\"4.5k\"></span>\n        <div class=\"text-bold\">MON</div>\n      </li>\n      <li>\n        <span class=\"white opacity-60 shadow radius-top\" style=\"height:20%\" title=\"15.8k\"></span>\n        <div class=\"text-bold\">TUE</div>\n      </li>\n      <li>\n        <span class=\"white opacity-60 shadow radius-top\" style=\"height:35%\" title=\"12k\"></span>\n        <div class=\"text-bold\">WED</div>\n      </li>\n      <li>\n        <span class=\"white shadow radius-top\" style=\"height:80%\" title=\"6.5k\"></span>\n        <div class=\"text-bold\">THU</div>\n      </li>\n      <li>\n        <span class=\"white opacity-60 shadow radius-top\" style=\"height:50%\" title=\"6.5k\"></span>\n        <div class=\"text-bold\">FRI</div>\n      </li>\n      <li>\n        <span class=\"white opacity-60 shadow radius-top\" style=\"height:70%\" title=\"6.5k\"></span>\n        <div class=\"text-bold\">SAT</div>\n      </li>\n      <li>\n        <span class=\"white opacity-60 shadow radius-top\" style=\"height:40%\" title=\"6.5k\"></span>\n        <div class=\"text-bold\">SUN</div>\n      </li>\n    </ul>\n    <div class=\"right blue-grey-900 radius padding text-huge text-light margin-top\">\n      80%\n    </div>\n    <p class=\"text-light\">THUESDAY</p>\n    <h1 class=\"text-huge text-strong\">$ 6,586.85</h1>\n  </div>\n\n  <div class=\"padding\">\n    <ul class=\"chart-bar no-line right size-2\">\n      <li>\n        <span class=\"grey opacity-60\" style=\"height:55%\"></span>\n      </li>\n      <li>\n        <span class=\"grey opacity-60\" style=\"height:20%\"></span>\n      </li>\n      <li>\n        <span class=\"grey opacity-60\" style=\"height:35%\"></span>\n      </li>\n      <li>\n        <span class=\"blue-grey\" style=\"height:80%\"></span>\n      </li>\n      <li>\n        <span class=\"grey opacity-60\" style=\"height:50%\"></span>\n      </li>\n      <li>\n        <span class=\"grey opacity-60\" style=\"height:70%\"></span>\n      </li>\n      <li>\n        <span class=\"grey opacity-60\" style=\"height:40%\"></span>\n      </li>\n    </ul>\n    <p class=\"text-light\">ORDERS</p>\n    <h1 class=\"text-huge text-bold\">8,578</h1>\n  </div>\n  <div class=\"line grey-300\"></div>\n  <div class=\"padding\">\n    <ul class=\"chart-bar no-line right size-2\">\n      <li>\n        <span class=\"grey opacity-60\" style=\"height:72%\"></span>\n      </li>\n      <li>\n        <span class=\"grey opacity-60\" style=\"height:65%\"></span>\n      </li>\n      <li>\n        <span class=\"grey opacity-60\" style=\"height:77%\"></span>\n      </li>\n      <li>\n        <span class=\"red\" style=\"height:59%\"></span>\n      </li>\n      <li>\n        <span class=\"grey opacity-60\" style=\"height:69%\"></span>\n      </li>\n      <li>\n        <span class=\"grey opacity-60\" style=\"height:62%\"></span>\n      </li>\n      <li>\n        <span class=\"grey opacity-60\" style=\"height:76%\"></span>\n      </li>\n    </ul>\n    <p class=\"text-light\">ORDERS REMOVED</p>\n    <h1 class=\"text-huge text-bold\">356</h1>\n  </div>\n  <div class=\"line grey-300\"></div>\n  <div class=\"padding\">\n    <ul class=\"chart-bar no-line right size-2\">\n      <li>\n        <span class=\"grey opacity-60\" style=\"height:55%\"></span>\n      </li>\n      <li>\n        <span class=\"grey opacity-60\" style=\"height:65%\"></span>\n      </li>\n      <li>\n        <span class=\"grey opacity-60\" style=\"height:57%\"></span>\n      </li>\n      <li>\n        <span class=\"green\" style=\"height:59%\"></span>\n      </li>\n      <li>\n        <span class=\"grey opacity-60\" style=\"height:69%\"></span>\n      </li>\n      <li>\n        <span class=\"grey opacity-60\" style=\"height:32%\"></span>\n      </li>\n      <li>\n        <span class=\"grey opacity-60\" style=\"height:46%\"></span>\n      </li>\n    </ul>\n    <p class=\"text-light\">NEW CLIENTS</p>\n    <h1 class=\"text-huge text-bold\">398</h1>\n  </div>\n</body></textarea>\n\n  <!-- DONE -->\n  <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n  <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n  <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n  <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "chart-bar/style.css",
    "content": "/*Determines a area of chart bar.*/\n.chart-bar {\n  display:table;\n  table-layout: fixed;\n  width:100%;\n  height:250px;\n  background-image: linear-gradient(to top, rgba(0, 0, 0, 0.1) 2%, rgba(0, 0, 0, 0) 2%);\n  background-size: 100% 50px;\n  background-position: left top;\n}\n/*Determines line in chart with white color.*/\n.chart-bar.line-white {\n  background-image: linear-gradient(to top, rgba(255, 255, 255, 0.1) 2%, rgba(255, 255, 255, 0) 2%);\n}\n/*Remove line in chart.*/\n.chart-bar.no-line {\n  background-image: none;\n}\n.chart-bar li {\n  position:relative;\n  display:table-cell;\n  vertical-align:bottom;\n  height:250px;\n}\n.chart-bar li span{\n    margin:0 5px;\n    display: block;\n}\n.chart-bar li div {\n  width: 100%;\n  text-align: center;\n  padding: 5px;\n}\n.chart-bar li span::before{\n  position:relative;\n  top: 0;\n  width: 100%;\n  padding-top: 5px;\n  padding-bottom: 5px;\n\tdisplay:block;\n  text-align:center;\n  content:attr(title);\n  word-wrap: break-word;\n  overflow: hidden;\n  opacity: 0.7;\n}\n/*Determines the small size.*/\n.chart-bar.size-1 {\n  width: 80px;\n}\n.chart-bar.size-1, .chart-bar.size-1 li {\n  height: 40px;\n}\n.chart-bar.size-1 li span {\n  margin:0 2px;\n}\n/*Determines the medium size.*/\n.chart-bar.size-2 {\n  width: 150px;\n}\n.chart-bar.size-2, .chart-bar.size-2 li {\n  height: 60px;\n}\n.chart-bar.size-2 li span {\n  margin:0 4px;\n}\n/*Determines the big size.*/\n.chart-bar.size-3 {\n  width: 250px;\n}\n.chart-bar.size-3, .chart-bar.size-3 li {\n  height: 80px;\n}\n.chart-bar.size-3 li span {\n  margin:0 5px;\n}\n"
  },
  {
    "path": "chartist/component.json",
    "content": "{\n  \"name\":\"chartist\",\n  \"author\": \"gionkunz\",\n  \"dependencies\": []\n}\n"
  },
  {
    "path": "chartist/index.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title></title>\n    <link href=\"https://fonts.googleapis.com/css?family=Dosis|Raleway:400,700|Roboto:300,400,900,\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n    <link rel=\"stylesheet\" href=\"../base/reset.css\">\n    <link rel=\"stylesheet\" href=\"../base/mobileui.css\">\n    <link rel=\"stylesheet\" href=\"../base/colors.css\">\n    <link rel=\"stylesheet\" href=\"../base/icons.css\">\n    <link rel=\"stylesheet\" href=\"../header/style.css\">\n    <link rel=\"stylesheet\" href=\"../grid/style.css\">\n    <link rel=\"stylesheet\" href=\"../list/style.css\">\n    <link rel=\"stylesheet\" href=\"../chartist-plugin-tooltip/style.css\">\n    <link rel=\"stylesheet\" href=\"style.css\">\n    <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n    <script type=\"text/javascript\" src=\"script.js\"></script>\n    <script type=\"text/javascript\" src=\"../chartist-plugin-tooltip/script.js\"></script>\n    <style>\n      .content-land { margin-left:50px}\n    </style>\n  </head>\n  <body class=\"content-land\">\n    <!-- BEGIN -->\n    <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">Chartist</h2>\n    <p>\n      You may think that this is just yet an other charting library. But <a href=\"https://gionkunz.github.io/chartist-js/\" target=\"_blank\">Chartist.js</a> is the product of a community that was disappointed about the abilities provided by other charting libraries. Of course there are hundreds of other great charting libraries but after using them there were always tweaks you would have wished for that were not included.\n    </p>\n    <p>\n      You can use <a href=\"#colors\">colors theme</a> and <a href=\"#icons\">icons</a> in Chartist.\n    <p>\n      To use this component you need install with the command:\n    </p>\n    <pre>mobileui install chartist</pre>\n    <!-- _DOC_GENERATE_CSS_DOC -->\n    <p>You can use all features the <a href=\"#base\">base</a> MobileUI in this component.</p>\n\n<textarea class=\"bind-code\"  header-absolute=\"true\" mode=\"text/html\" border=\"true\">\n<div class=\"header purple\">\n  <button class=\"left icon ion-android-arrow-back\"></button>\n  <h1>Chartist example</h1>\n  <button class=\"right icon ion-refresh\"></button>\n</div>\n<div class=\"content has-header\">\n  <div class=\"purple chartist-white\" id=\"chartist-line\"></div>\n  <div class=\"purple chartist-white\" id=\"chartist-bar\"></div>\n  <p class=\"padding text-big text-light align-center\">\n    Good examples using Chartist!\n  </p>\n  <div id=\"chartist-pie\"></div>\n</div>\n<script type=\"text/javascript\">\n\n  new Chartist.Line('#chartist-line', {\n    labels: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n    series: [\n      [1, 5, 2, 5, 4, 3]\n    ]\n  });\n\n  new Chartist.Bar('#chartist-bar', {\n    labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'],\n    series: [\n      [5, 4, 3, 7, 5, 10],\n      [3, 2, 9, 5, 4, 6]\n    ]\n  });\n\n  new Chartist.Pie('#chartist-pie', {\n    series: [5, 3, 4]\n  });\n\n</script></textarea>\n  <p>Your can use the primary scheme colors and combination with others components. Next example use <code>header</code>, <code>grid</code> and <code>list</code>.</p>\n<textarea class=\"bind-code\"  header-absolute=\"true\" mode=\"text/html\" border=\"true\">\n  <div class=\"header blue-grey-800\">\n    <button class=\"left icon ion-navicon\"></button>\n    <h1>Strauss Coffe Roasters</h1>\n  </div>\n  <div class=\"header sub blue-grey-900 align-center\">\n    <button class=\"left icon ion-ios-arrow-left text-blue\"></button>\n    <h1 class=\"text-blue\">July 20, 2017</h1>\n    <button class=\"right icon ion-ios-arrow-right text-blue\"></button>\n  </div>\n  <div class=\"content has-header has-sub-header padding\">\n    \n    <p class=\"text-blue text-big\">Sales Summary</p>\n    \n    <div class=\"row\">\n      <div class=\"col-25\">\n        <h1 class=\"text-strong text-big\">$1,854.86</h1>\n        <p>Gross Sales</p>\n      </div>\n      <div class=\"col align-center\">\n        <h1 class=\"text-strong text-big\">341</h1>\n        <p>Sales</p>\n      </div>\n      <div class=\"col-25\">\n        <h1 class=\"text-strong text-big\">$5.44</h1>\n        <p>Average Sale</p>\n      </div>\n    </div>\n\n    <div class=\"chartist-blue chartist-big text-black\" id=\"chartist-strauss\"></div>\n\n    <div class=\"list\">\n      <div class=\"item\">\n        <h2>Hot Drinks</h2>\n        <span class=\"right text-strong\">$762.00</span>\n      </div>\n      <div class=\"item\">\n        <h2>Cold Drinks</h2>\n        <span class=\"right text-strong\">$634.25</span>\n      </div>\n      <div class=\"item\">\n        <h2>Pastries</h2>\n        <span class=\"right text-strong\">$188.00</span>\n      </div>\n      <div class=\"item\">\n        <h2>Merchandise</h2>\n        <span class=\"right text-strong\">$126.76</span>\n      </div>\n    </div>\n\n  </div>\n  <script type=\"text/javascript\">\n    \n    new Chartist.Bar('#chartist-strauss', {\n      labels: ['6AM', '7AM', '8AM', '9AM', '10AM', '11AM', '12PM', '1PM'],\n      series: [\n        [56, 160, 220, 350, 210, 180, 320, 310]\n      ]\n    });\n  \n  </script></textarea>\n  <p>\n    Below another example with combined charts using <code>grid</code> and component <code>chartist-plugin-tooltip</code>. \n    In this case you need install plugin with command <code>mobileui install chartist-plugin-tooltip</code>\n  </p>\n<textarea class=\"bind-code\"  header-absolute=\"true\" mode=\"text/html\" border=\"true\">\n  <div class=\"header black\">\n    <button class=\"left icon ion-android-arrow-back\"></button>\n    <h1>Dashboard Sales and Finance</h1>\n  </div>\n  <div class=\"content has-header black\">\n    <div class=\"row padding\">\n      <div class=\"col-50\">\n        <div id=\"chartist-sale\" class=\"chartist-green text-white\"></div>\n      </div>\n      <div class=\"col-50\">\n        <div id=\"chartist-platform\" class=\"chartist-red text-white\"></div>\n      </div>\n    </div>\n    <div class=\"row\">\n      <div class=\"col\">\n        <div class=\"chartist-blue chartist-huge text-white\" id=\"chartist-region\"></div>\n      </div>\n    </div>\n  </div>\n  <div class=\"row align-center\">\n    <div class=\"col green padding\">\n      <h1 class=\"text-huge text-strong\">65</h1>\n      <small class=\"text-light\">Tickets</small>\n    </div>\n    <div class=\"col red padding\">\n      <h1 class=\"text-huge text-strong\">33</h1>\n      <small class=\"text-light\">Leads</small>\n    </div>\n  </div>\n  <script type=\"text/javascript\">\n  \n    new Chartist.Pie('#chartist-sale', {\n      labels: ['Services', 'Licenses', 'Support'],\n      series: [560, 345, 56]\n    });\n\n    new Chartist.Pie('#chartist-platform', {\n      labels: ['Android', 'iOS', 'Windows'],\n      series: [183, 234, 45]\n    });\n\n    new Chartist.Bar('#chartist-region', {\n      labels: ['Brazil', 'Europe', 'The Americas', 'Asia', 'Russia'],\n      series: [\n        [\n          {meta: 'Total', value: 735 },\n          {meta: 'Total', value: 345},\n          {meta: 'Total', value: 565},\n          {meta: 'Total', value: 56},\n          {meta: 'Total', value: 23}\n        ]\n      ]\n    }, {\n      plugins: [\n        Chartist.plugins.tooltip()\n      ]\n    });\n  \n  </script></textarea>\n\n    <!-- DONE -->\n    <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n    <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n    <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n    <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "chartist/script.js",
    "content": "!function(a,b){\"function\"==typeof define&&define.amd?define(\"Chartist\",[],function(){return a.Chartist=b()}):\"object\"==typeof module&&module.exports?module.exports=b():a.Chartist=b()}(this,function(){var a={version:\"0.11.0\"};return function(a,b,c){\"use strict\";c.namespaces={svg:\"http://www.w3.org/2000/svg\",xmlns:\"http://www.w3.org/2000/xmlns/\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",ct:\"http://gionkunz.github.com/chartist-js/ct\"},c.noop=function(a){return a},c.alphaNumerate=function(a){return String.fromCharCode(97+a%26)},c.extend=function(a){var b,d,e;for(a=a||{},b=1;b<arguments.length;b++){d=arguments[b];for(var f in d)e=d[f],\"object\"!=typeof e||null===e||e instanceof Array?a[f]=e:a[f]=c.extend(a[f],e)}return a},c.replaceAll=function(a,b,c){return a.replace(new RegExp(b,\"g\"),c)},c.ensureUnit=function(a,b){return\"number\"==typeof a&&(a+=b),a},c.quantity=function(a){if(\"string\"==typeof a){var b=/^(\\d+)\\s*(.*)$/g.exec(a);return{value:+b[1],unit:b[2]||void 0}}return{value:a}},c.querySelector=function(a){return a instanceof Node?a:b.querySelector(a)},c.times=function(a){return Array.apply(null,new Array(a))},c.sum=function(a,b){return a+(b?b:0)},c.mapMultiply=function(a){return function(b){return b*a}},c.mapAdd=function(a){return function(b){return b+a}},c.serialMap=function(a,b){var d=[],e=Math.max.apply(null,a.map(function(a){return a.length}));return c.times(e).forEach(function(c,e){var f=a.map(function(a){return a[e]});d[e]=b.apply(null,f)}),d},c.roundWithPrecision=function(a,b){var d=Math.pow(10,b||c.precision);return Math.round(a*d)/d},c.precision=8,c.escapingMap={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#039;\"},c.serialize=function(a){return null===a||void 0===a?a:(\"number\"==typeof a?a=\"\"+a:\"object\"==typeof a&&(a=JSON.stringify({data:a})),Object.keys(c.escapingMap).reduce(function(a,b){return c.replaceAll(a,b,c.escapingMap[b])},a))},c.deserialize=function(a){if(\"string\"!=typeof a)return a;a=Object.keys(c.escapingMap).reduce(function(a,b){return c.replaceAll(a,c.escapingMap[b],b)},a);try{a=JSON.parse(a),a=void 0!==a.data?a.data:a}catch(b){}return a},c.createSvg=function(a,b,d,e){var f;return b=b||\"100%\",d=d||\"100%\",Array.prototype.slice.call(a.querySelectorAll(\"svg\")).filter(function(a){return a.getAttributeNS(c.namespaces.xmlns,\"ct\")}).forEach(function(b){a.removeChild(b)}),f=new c.Svg(\"svg\").attr({width:b,height:d}).addClass(e),f._node.style.width=b,f._node.style.height=d,a.appendChild(f._node),f},c.normalizeData=function(a,b,d){var e,f={raw:a,normalized:{}};return f.normalized.series=c.getDataArray({series:a.series||[]},b,d),e=f.normalized.series.every(function(a){return a instanceof Array})?Math.max.apply(null,f.normalized.series.map(function(a){return a.length})):f.normalized.series.length,f.normalized.labels=(a.labels||[]).slice(),Array.prototype.push.apply(f.normalized.labels,c.times(Math.max(0,e-f.normalized.labels.length)).map(function(){return\"\"})),b&&c.reverseData(f.normalized),f},c.safeHasProperty=function(a,b){return null!==a&&\"object\"==typeof a&&a.hasOwnProperty(b)},c.isDataHoleValue=function(a){return null===a||void 0===a||\"number\"==typeof a&&isNaN(a)},c.reverseData=function(a){a.labels.reverse(),a.series.reverse();for(var b=0;b<a.series.length;b++)\"object\"==typeof a.series[b]&&void 0!==a.series[b].data?a.series[b].data.reverse():a.series[b]instanceof Array&&a.series[b].reverse()},c.getDataArray=function(a,b,d){function e(a){if(c.safeHasProperty(a,\"value\"))return e(a.value);if(c.safeHasProperty(a,\"data\"))return e(a.data);if(a instanceof Array)return a.map(e);if(!c.isDataHoleValue(a)){if(d){var b={};return\"string\"==typeof d?b[d]=c.getNumberOrUndefined(a):b.y=c.getNumberOrUndefined(a),b.x=a.hasOwnProperty(\"x\")?c.getNumberOrUndefined(a.x):b.x,b.y=a.hasOwnProperty(\"y\")?c.getNumberOrUndefined(a.y):b.y,b}return c.getNumberOrUndefined(a)}}return a.series.map(e)},c.normalizePadding=function(a,b){return b=b||0,\"number\"==typeof a?{top:a,right:a,bottom:a,left:a}:{top:\"number\"==typeof a.top?a.top:b,right:\"number\"==typeof a.right?a.right:b,bottom:\"number\"==typeof a.bottom?a.bottom:b,left:\"number\"==typeof a.left?a.left:b}},c.getMetaData=function(a,b){var c=a.data?a.data[b]:a[b];return c?c.meta:void 0},c.orderOfMagnitude=function(a){return Math.floor(Math.log(Math.abs(a))/Math.LN10)},c.projectLength=function(a,b,c){return b/c.range*a},c.getAvailableHeight=function(a,b){return Math.max((c.quantity(b.height).value||a.height())-(b.chartPadding.top+b.chartPadding.bottom)-b.axisX.offset,0)},c.getHighLow=function(a,b,d){function e(a){if(void 0!==a)if(a instanceof Array)for(var b=0;b<a.length;b++)e(a[b]);else{var c=d?+a[d]:+a;g&&c>f.high&&(f.high=c),h&&c<f.low&&(f.low=c)}}b=c.extend({},b,d?b[\"axis\"+d.toUpperCase()]:{});var f={high:void 0===b.high?-Number.MAX_VALUE:+b.high,low:void 0===b.low?Number.MAX_VALUE:+b.low},g=void 0===b.high,h=void 0===b.low;return(g||h)&&e(a),(b.referenceValue||0===b.referenceValue)&&(f.high=Math.max(b.referenceValue,f.high),f.low=Math.min(b.referenceValue,f.low)),f.high<=f.low&&(0===f.low?f.high=1:f.low<0?f.high=0:f.high>0?f.low=0:(f.high=1,f.low=0)),f},c.isNumeric=function(a){return null!==a&&isFinite(a)},c.isFalseyButZero=function(a){return!a&&0!==a},c.getNumberOrUndefined=function(a){return c.isNumeric(a)?+a:void 0},c.isMultiValue=function(a){return\"object\"==typeof a&&(\"x\"in a||\"y\"in a)},c.getMultiValue=function(a,b){return c.isMultiValue(a)?c.getNumberOrUndefined(a[b||\"y\"]):c.getNumberOrUndefined(a)},c.rho=function(a){function b(a,c){return a%c===0?c:b(c,a%c)}function c(a){return a*a+1}if(1===a)return a;var d,e=2,f=2;if(a%2===0)return 2;do e=c(e)%a,f=c(c(f))%a,d=b(Math.abs(e-f),a);while(1===d);return d},c.getBounds=function(a,b,d,e){function f(a,b){return a===(a+=b)&&(a*=1+(b>0?o:-o)),a}var g,h,i,j=0,k={high:b.high,low:b.low};k.valueRange=k.high-k.low,k.oom=c.orderOfMagnitude(k.valueRange),k.step=Math.pow(10,k.oom),k.min=Math.floor(k.low/k.step)*k.step,k.max=Math.ceil(k.high/k.step)*k.step,k.range=k.max-k.min,k.numberOfSteps=Math.round(k.range/k.step);var l=c.projectLength(a,k.step,k),m=l<d,n=e?c.rho(k.range):0;if(e&&c.projectLength(a,1,k)>=d)k.step=1;else if(e&&n<k.step&&c.projectLength(a,n,k)>=d)k.step=n;else for(;;){if(m&&c.projectLength(a,k.step,k)<=d)k.step*=2;else{if(m||!(c.projectLength(a,k.step/2,k)>=d))break;if(k.step/=2,e&&k.step%1!==0){k.step*=2;break}}if(j++>1e3)throw new Error(\"Exceeded maximum number of iterations while optimizing scale step!\")}var o=2.221e-16;for(k.step=Math.max(k.step,o),h=k.min,i=k.max;h+k.step<=k.low;)h=f(h,k.step);for(;i-k.step>=k.high;)i=f(i,-k.step);k.min=h,k.max=i,k.range=k.max-k.min;var p=[];for(g=k.min;g<=k.max;g=f(g,k.step)){var q=c.roundWithPrecision(g);q!==p[p.length-1]&&p.push(q)}return k.values=p,k},c.polarToCartesian=function(a,b,c,d){var e=(d-90)*Math.PI/180;return{x:a+c*Math.cos(e),y:b+c*Math.sin(e)}},c.createChartRect=function(a,b,d){var e=!(!b.axisX&&!b.axisY),f=e?b.axisY.offset:0,g=e?b.axisX.offset:0,h=a.width()||c.quantity(b.width).value||0,i=a.height()||c.quantity(b.height).value||0,j=c.normalizePadding(b.chartPadding,d);h=Math.max(h,f+j.left+j.right),i=Math.max(i,g+j.top+j.bottom);var k={padding:j,width:function(){return this.x2-this.x1},height:function(){return this.y1-this.y2}};return e?(\"start\"===b.axisX.position?(k.y2=j.top+g,k.y1=Math.max(i-j.bottom,k.y2+1)):(k.y2=j.top,k.y1=Math.max(i-j.bottom-g,k.y2+1)),\"start\"===b.axisY.position?(k.x1=j.left+f,k.x2=Math.max(h-j.right,k.x1+1)):(k.x1=j.left,k.x2=Math.max(h-j.right-f,k.x1+1))):(k.x1=j.left,k.x2=Math.max(h-j.right,k.x1+1),k.y2=j.top,k.y1=Math.max(i-j.bottom,k.y2+1)),k},c.createGrid=function(a,b,d,e,f,g,h,i){var j={};j[d.units.pos+\"1\"]=a,j[d.units.pos+\"2\"]=a,j[d.counterUnits.pos+\"1\"]=e,j[d.counterUnits.pos+\"2\"]=e+f;var k=g.elem(\"line\",j,h.join(\" \"));i.emit(\"draw\",c.extend({type:\"grid\",axis:d,index:b,group:g,element:k},j))},c.createGridBackground=function(a,b,c,d){var e=a.elem(\"rect\",{x:b.x1,y:b.y2,width:b.width(),height:b.height()},c,!0);d.emit(\"draw\",{type:\"gridBackground\",group:a,element:e})},c.createLabel=function(a,d,e,f,g,h,i,j,k,l,m){var n,o={};if(o[g.units.pos]=a+i[g.units.pos],o[g.counterUnits.pos]=i[g.counterUnits.pos],o[g.units.len]=d,o[g.counterUnits.len]=Math.max(0,h-10),l){var p=b.createElement(\"span\");p.className=k.join(\" \"),p.setAttribute(\"xmlns\",c.namespaces.xhtml),p.innerText=f[e],p.style[g.units.len]=Math.round(o[g.units.len])+\"px\",p.style[g.counterUnits.len]=Math.round(o[g.counterUnits.len])+\"px\",n=j.foreignObject(p,c.extend({style:\"overflow: visible;\"},o))}else n=j.elem(\"text\",o,k.join(\" \")).text(f[e]);m.emit(\"draw\",c.extend({type:\"label\",axis:g,index:e,group:j,element:n,text:f[e]},o))},c.getSeriesOption=function(a,b,c){if(a.name&&b.series&&b.series[a.name]){var d=b.series[a.name];return d.hasOwnProperty(c)?d[c]:b[c]}return b[c]},c.optionsProvider=function(b,d,e){function f(b){var f=h;if(h=c.extend({},j),d)for(i=0;i<d.length;i++){var g=a.matchMedia(d[i][0]);g.matches&&(h=c.extend(h,d[i][1]))}e&&b&&e.emit(\"optionsChanged\",{previousOptions:f,currentOptions:h})}function g(){k.forEach(function(a){a.removeListener(f)})}var h,i,j=c.extend({},b),k=[];if(!a.matchMedia)throw\"window.matchMedia not found! Make sure you're using a polyfill.\";if(d)for(i=0;i<d.length;i++){var l=a.matchMedia(d[i][0]);l.addListener(f),k.push(l)}return f(),{removeMediaQueryListeners:g,getCurrentOptions:function(){return c.extend({},h)}}},c.splitIntoSegments=function(a,b,d){var e={increasingX:!1,fillHoles:!1};d=c.extend({},e,d);for(var f=[],g=!0,h=0;h<a.length;h+=2)void 0===c.getMultiValue(b[h/2].value)?d.fillHoles||(g=!0):(d.increasingX&&h>=2&&a[h]<=a[h-2]&&(g=!0),g&&(f.push({pathCoordinates:[],valueData:[]}),g=!1),f[f.length-1].pathCoordinates.push(a[h],a[h+1]),f[f.length-1].valueData.push(b[h/2]));return f}}(window,document,a),function(a,b,c){\"use strict\";c.Interpolation={},c.Interpolation.none=function(a){var b={fillHoles:!1};return a=c.extend({},b,a),function(b,d){for(var e=new c.Svg.Path,f=!0,g=0;g<b.length;g+=2){var h=b[g],i=b[g+1],j=d[g/2];void 0!==c.getMultiValue(j.value)?(f?e.move(h,i,!1,j):e.line(h,i,!1,j),f=!1):a.fillHoles||(f=!0)}return e}},c.Interpolation.simple=function(a){var b={divisor:2,fillHoles:!1};a=c.extend({},b,a);var d=1/Math.max(1,a.divisor);return function(b,e){for(var f,g,h,i=new c.Svg.Path,j=0;j<b.length;j+=2){var k=b[j],l=b[j+1],m=(k-f)*d,n=e[j/2];void 0!==n.value?(void 0===h?i.move(k,l,!1,n):i.curve(f+m,g,k-m,l,k,l,!1,n),f=k,g=l,h=n):a.fillHoles||(f=k=h=void 0)}return i}},c.Interpolation.cardinal=function(a){var b={tension:1,fillHoles:!1};a=c.extend({},b,a);var d=Math.min(1,Math.max(0,a.tension)),e=1-d;return function f(b,g){var h=c.splitIntoSegments(b,g,{fillHoles:a.fillHoles});if(h.length){if(h.length>1){var i=[];return h.forEach(function(a){i.push(f(a.pathCoordinates,a.valueData))}),c.Svg.Path.join(i)}if(b=h[0].pathCoordinates,g=h[0].valueData,b.length<=4)return c.Interpolation.none()(b,g);for(var j,k=(new c.Svg.Path).move(b[0],b[1],!1,g[0]),l=0,m=b.length;m-2*!j>l;l+=2){var n=[{x:+b[l-2],y:+b[l-1]},{x:+b[l],y:+b[l+1]},{x:+b[l+2],y:+b[l+3]},{x:+b[l+4],y:+b[l+5]}];j?l?m-4===l?n[3]={x:+b[0],y:+b[1]}:m-2===l&&(n[2]={x:+b[0],y:+b[1]},n[3]={x:+b[2],y:+b[3]}):n[0]={x:+b[m-2],y:+b[m-1]}:m-4===l?n[3]=n[2]:l||(n[0]={x:+b[l],y:+b[l+1]}),k.curve(d*(-n[0].x+6*n[1].x+n[2].x)/6+e*n[2].x,d*(-n[0].y+6*n[1].y+n[2].y)/6+e*n[2].y,d*(n[1].x+6*n[2].x-n[3].x)/6+e*n[2].x,d*(n[1].y+6*n[2].y-n[3].y)/6+e*n[2].y,n[2].x,n[2].y,!1,g[(l+2)/2])}return k}return c.Interpolation.none()([])}},c.Interpolation.monotoneCubic=function(a){var b={fillHoles:!1};return a=c.extend({},b,a),function d(b,e){var f=c.splitIntoSegments(b,e,{fillHoles:a.fillHoles,increasingX:!0});if(f.length){if(f.length>1){var g=[];return f.forEach(function(a){g.push(d(a.pathCoordinates,a.valueData))}),c.Svg.Path.join(g)}if(b=f[0].pathCoordinates,e=f[0].valueData,b.length<=4)return c.Interpolation.none()(b,e);var h,i,j=[],k=[],l=b.length/2,m=[],n=[],o=[],p=[];for(h=0;h<l;h++)j[h]=b[2*h],k[h]=b[2*h+1];for(h=0;h<l-1;h++)o[h]=k[h+1]-k[h],p[h]=j[h+1]-j[h],n[h]=o[h]/p[h];for(m[0]=n[0],m[l-1]=n[l-2],h=1;h<l-1;h++)0===n[h]||0===n[h-1]||n[h-1]>0!=n[h]>0?m[h]=0:(m[h]=3*(p[h-1]+p[h])/((2*p[h]+p[h-1])/n[h-1]+(p[h]+2*p[h-1])/n[h]),isFinite(m[h])||(m[h]=0));for(i=(new c.Svg.Path).move(j[0],k[0],!1,e[0]),h=0;h<l-1;h++)i.curve(j[h]+p[h]/3,k[h]+m[h]*p[h]/3,j[h+1]-p[h]/3,k[h+1]-m[h+1]*p[h]/3,j[h+1],k[h+1],!1,e[h+1]);return i}return c.Interpolation.none()([])}},c.Interpolation.step=function(a){var b={postpone:!0,fillHoles:!1};return a=c.extend({},b,a),function(b,d){for(var e,f,g,h=new c.Svg.Path,i=0;i<b.length;i+=2){var j=b[i],k=b[i+1],l=d[i/2];void 0!==l.value?(void 0===g?h.move(j,k,!1,l):(a.postpone?h.line(j,f,!1,g):h.line(e,k,!1,l),h.line(j,k,!1,l)),e=j,f=k,g=l):a.fillHoles||(e=f=g=void 0)}return h}}}(window,document,a),function(a,b,c){\"use strict\";c.EventEmitter=function(){function a(a,b){d[a]=d[a]||[],d[a].push(b)}function b(a,b){d[a]&&(b?(d[a].splice(d[a].indexOf(b),1),0===d[a].length&&delete d[a]):delete d[a])}function c(a,b){d[a]&&d[a].forEach(function(a){a(b)}),d[\"*\"]&&d[\"*\"].forEach(function(c){c(a,b)})}var d=[];return{addEventHandler:a,removeEventHandler:b,emit:c}}}(window,document,a),function(a,b,c){\"use strict\";function d(a){var b=[];if(a.length)for(var c=0;c<a.length;c++)b.push(a[c]);return b}function e(a,b){var d=b||this.prototype||c.Class,e=Object.create(d);c.Class.cloneDefinitions(e,a);var f=function(){var a,b=e.constructor||function(){};return a=this===c?Object.create(e):this,b.apply(a,Array.prototype.slice.call(arguments,0)),a};return f.prototype=e,f[\"super\"]=d,f.extend=this.extend,f}function f(){var a=d(arguments),b=a[0];return a.splice(1,a.length-1).forEach(function(a){Object.getOwnPropertyNames(a).forEach(function(c){delete b[c],Object.defineProperty(b,c,Object.getOwnPropertyDescriptor(a,c))})}),b}c.Class={extend:e,cloneDefinitions:f}}(window,document,a),function(a,b,c){\"use strict\";function d(a,b,d){return a&&(this.data=a||{},this.data.labels=this.data.labels||[],this.data.series=this.data.series||[],this.eventEmitter.emit(\"data\",{type:\"update\",data:this.data})),b&&(this.options=c.extend({},d?this.options:this.defaultOptions,b),this.initializeTimeoutId||(this.optionsProvider.removeMediaQueryListeners(),this.optionsProvider=c.optionsProvider(this.options,this.responsiveOptions,this.eventEmitter))),this.initializeTimeoutId||this.createChart(this.optionsProvider.getCurrentOptions()),this}function e(){return this.initializeTimeoutId?a.clearTimeout(this.initializeTimeoutId):(a.removeEventListener(\"resize\",this.resizeListener),this.optionsProvider.removeMediaQueryListeners()),this}function f(a,b){return this.eventEmitter.addEventHandler(a,b),this}function g(a,b){return this.eventEmitter.removeEventHandler(a,b),this}function h(){a.addEventListener(\"resize\",this.resizeListener),this.optionsProvider=c.optionsProvider(this.options,this.responsiveOptions,this.eventEmitter),this.eventEmitter.addEventHandler(\"optionsChanged\",function(){this.update()}.bind(this)),this.options.plugins&&this.options.plugins.forEach(function(a){a instanceof Array?a[0](this,a[1]):a(this)}.bind(this)),this.eventEmitter.emit(\"data\",{type:\"initial\",data:this.data}),this.createChart(this.optionsProvider.getCurrentOptions()),this.initializeTimeoutId=void 0}function i(a,b,d,e,f){this.container=c.querySelector(a),this.data=b||{},this.data.labels=this.data.labels||[],this.data.series=this.data.series||[],this.defaultOptions=d,this.options=e,this.responsiveOptions=f,this.eventEmitter=c.EventEmitter(),this.supportsForeignObject=c.Svg.isSupported(\"Extensibility\"),this.supportsAnimations=c.Svg.isSupported(\"AnimationEventsAttribute\"),this.resizeListener=function(){this.update()}.bind(this),this.container&&(this.container.__chartist__&&this.container.__chartist__.detach(),this.container.__chartist__=this),this.initializeTimeoutId=setTimeout(h.bind(this),0)}c.Base=c.Class.extend({constructor:i,optionsProvider:void 0,container:void 0,svg:void 0,eventEmitter:void 0,createChart:function(){throw new Error(\"Base chart type can't be instantiated!\")},update:d,detach:e,on:f,off:g,version:c.version,supportsForeignObject:!1})}(window,document,a),function(a,b,c){\"use strict\";function d(a,d,e,f,g){a instanceof Element?this._node=a:(this._node=b.createElementNS(c.namespaces.svg,a),\"svg\"===a&&this.attr({\"xmlns:ct\":c.namespaces.ct})),d&&this.attr(d),e&&this.addClass(e),f&&(g&&f._node.firstChild?f._node.insertBefore(this._node,f._node.firstChild):f._node.appendChild(this._node))}function e(a,b){return\"string\"==typeof a?b?this._node.getAttributeNS(b,a):this._node.getAttribute(a):(Object.keys(a).forEach(function(b){if(void 0!==a[b])if(b.indexOf(\":\")!==-1){var d=b.split(\":\");this._node.setAttributeNS(c.namespaces[d[0]],b,a[b])}else this._node.setAttribute(b,a[b])}.bind(this)),this)}function f(a,b,d,e){return new c.Svg(a,b,d,this,e)}function g(){return this._node.parentNode instanceof SVGElement?new c.Svg(this._node.parentNode):null}function h(){for(var a=this._node;\"svg\"!==a.nodeName;)a=a.parentNode;return new c.Svg(a)}function i(a){var b=this._node.querySelector(a);return b?new c.Svg(b):null}function j(a){var b=this._node.querySelectorAll(a);return b.length?new c.Svg.List(b):null}function k(){return this._node}function l(a,d,e,f){if(\"string\"==typeof a){var g=b.createElement(\"div\");g.innerHTML=a,a=g.firstChild}a.setAttribute(\"xmlns\",c.namespaces.xmlns);var h=this.elem(\"foreignObject\",d,e,f);return h._node.appendChild(a),h}function m(a){return this._node.appendChild(b.createTextNode(a)),this}function n(){for(;this._node.firstChild;)this._node.removeChild(this._node.firstChild);return this}function o(){return this._node.parentNode.removeChild(this._node),this.parent()}function p(a){return this._node.parentNode.replaceChild(a._node,this._node),a}function q(a,b){return b&&this._node.firstChild?this._node.insertBefore(a._node,this._node.firstChild):this._node.appendChild(a._node),this}function r(){return this._node.getAttribute(\"class\")?this._node.getAttribute(\"class\").trim().split(/\\s+/):[]}function s(a){return this._node.setAttribute(\"class\",this.classes(this._node).concat(a.trim().split(/\\s+/)).filter(function(a,b,c){return c.indexOf(a)===b}).join(\" \")),this}function t(a){var b=a.trim().split(/\\s+/);return this._node.setAttribute(\"class\",this.classes(this._node).filter(function(a){return b.indexOf(a)===-1}).join(\" \")),this}function u(){return this._node.setAttribute(\"class\",\"\"),this}function v(){return this._node.getBoundingClientRect().height}function w(){return this._node.getBoundingClientRect().width}function x(a,b,d){return void 0===b&&(b=!0),Object.keys(a).forEach(function(e){function f(a,b){var f,g,h,i={};a.easing&&(h=a.easing instanceof Array?a.easing:c.Svg.Easing[a.easing],delete a.easing),a.begin=c.ensureUnit(a.begin,\"ms\"),a.dur=c.ensureUnit(a.dur,\"ms\"),h&&(a.calcMode=\"spline\",a.keySplines=h.join(\" \"),a.keyTimes=\"0;1\"),b&&(a.fill=\"freeze\",i[e]=a.from,this.attr(i),g=c.quantity(a.begin||0).value,a.begin=\"indefinite\"),f=this.elem(\"animate\",c.extend({attributeName:e},a)),b&&setTimeout(function(){try{f._node.beginElement()}catch(b){i[e]=a.to,this.attr(i),f.remove()}}.bind(this),g),d&&f._node.addEventListener(\"beginEvent\",function(){d.emit(\"animationBegin\",{element:this,animate:f._node,params:a})}.bind(this)),f._node.addEventListener(\"endEvent\",function(){d&&d.emit(\"animationEnd\",{element:this,animate:f._node,params:a}),b&&(i[e]=a.to,this.attr(i),f.remove())}.bind(this))}a[e]instanceof Array?a[e].forEach(function(a){f.bind(this)(a,!1)}.bind(this)):f.bind(this)(a[e],b)}.bind(this)),this}function y(a){var b=this;this.svgElements=[];for(var d=0;d<a.length;d++)this.svgElements.push(new c.Svg(a[d]));Object.keys(c.Svg.prototype).filter(function(a){return[\"constructor\",\"parent\",\"querySelector\",\"querySelectorAll\",\"replace\",\"append\",\"classes\",\"height\",\"width\"].indexOf(a)===-1}).forEach(function(a){b[a]=function(){var d=Array.prototype.slice.call(arguments,0);return b.svgElements.forEach(function(b){c.Svg.prototype[a].apply(b,d)}),b}})}c.Svg=c.Class.extend({constructor:d,attr:e,elem:f,parent:g,root:h,querySelector:i,querySelectorAll:j,getNode:k,foreignObject:l,text:m,empty:n,remove:o,replace:p,append:q,classes:r,addClass:s,removeClass:t,removeAllClasses:u,height:v,width:w,animate:x}),c.Svg.isSupported=function(a){return b.implementation.hasFeature(\"http://www.w3.org/TR/SVG11/feature#\"+a,\"1.1\")};var z={easeInSine:[.47,0,.745,.715],easeOutSine:[.39,.575,.565,1],easeInOutSine:[.445,.05,.55,.95],easeInQuad:[.55,.085,.68,.53],easeOutQuad:[.25,.46,.45,.94],easeInOutQuad:[.455,.03,.515,.955],easeInCubic:[.55,.055,.675,.19],easeOutCubic:[.215,.61,.355,1],easeInOutCubic:[.645,.045,.355,1],easeInQuart:[.895,.03,.685,.22],easeOutQuart:[.165,.84,.44,1],easeInOutQuart:[.77,0,.175,1],easeInQuint:[.755,.05,.855,.06],easeOutQuint:[.23,1,.32,1],easeInOutQuint:[.86,0,.07,1],easeInExpo:[.95,.05,.795,.035],easeOutExpo:[.19,1,.22,1],easeInOutExpo:[1,0,0,1],easeInCirc:[.6,.04,.98,.335],easeOutCirc:[.075,.82,.165,1],easeInOutCirc:[.785,.135,.15,.86],easeInBack:[.6,-.28,.735,.045],easeOutBack:[.175,.885,.32,1.275],easeInOutBack:[.68,-.55,.265,1.55]};c.Svg.Easing=z,c.Svg.List=c.Class.extend({constructor:y})}(window,document,a),function(a,b,c){\"use strict\";function d(a,b,d,e,f,g){var h=c.extend({command:f?a.toLowerCase():a.toUpperCase()},b,g?{data:g}:{});d.splice(e,0,h)}function e(a,b){a.forEach(function(c,d){u[c.command.toLowerCase()].forEach(function(e,f){b(c,e,d,f,a)})})}function f(a,b){this.pathElements=[],this.pos=0,this.close=a,this.options=c.extend({},v,b)}function g(a){return void 0!==a?(this.pos=Math.max(0,Math.min(this.pathElements.length,a)),this):this.pos}function h(a){return this.pathElements.splice(this.pos,a),this}function i(a,b,c,e){return d(\"M\",{x:+a,y:+b},this.pathElements,this.pos++,c,e),this}function j(a,b,c,e){return d(\"L\",{x:+a,y:+b},this.pathElements,this.pos++,c,e),this}function k(a,b,c,e,f,g,h,i){return d(\"C\",{x1:+a,y1:+b,x2:+c,y2:+e,x:+f,y:+g},this.pathElements,this.pos++,h,i),this}function l(a,b,c,e,f,g,h,i,j){return d(\"A\",{rx:+a,ry:+b,xAr:+c,lAf:+e,sf:+f,x:+g,y:+h},this.pathElements,this.pos++,i,j),this}function m(a){var b=a.replace(/([A-Za-z])([0-9])/g,\"$1 $2\").replace(/([0-9])([A-Za-z])/g,\"$1 $2\").split(/[\\s,]+/).reduce(function(a,b){return b.match(/[A-Za-z]/)&&a.push([]),a[a.length-1].push(b),a},[]);\"Z\"===b[b.length-1][0].toUpperCase()&&b.pop();var d=b.map(function(a){var b=a.shift(),d=u[b.toLowerCase()];return c.extend({command:b},d.reduce(function(b,c,d){return b[c]=+a[d],b},{}))}),e=[this.pos,0];return Array.prototype.push.apply(e,d),Array.prototype.splice.apply(this.pathElements,e),this.pos+=d.length,this}function n(){var a=Math.pow(10,this.options.accuracy);return this.pathElements.reduce(function(b,c){var d=u[c.command.toLowerCase()].map(function(b){return this.options.accuracy?Math.round(c[b]*a)/a:c[b]}.bind(this));return b+c.command+d.join(\",\")}.bind(this),\"\")+(this.close?\"Z\":\"\")}function o(a,b){return e(this.pathElements,function(c,d){c[d]*=\"x\"===d[0]?a:b}),this}function p(a,b){return e(this.pathElements,function(c,d){c[d]+=\"x\"===d[0]?a:b}),this}function q(a){return e(this.pathElements,function(b,c,d,e,f){var g=a(b,c,d,e,f);(g||0===g)&&(b[c]=g)}),this}function r(a){var b=new c.Svg.Path(a||this.close);return b.pos=this.pos,b.pathElements=this.pathElements.slice().map(function(a){return c.extend({},a)}),b.options=c.extend({},this.options),b}function s(a){var b=[new c.Svg.Path];return this.pathElements.forEach(function(d){d.command===a.toUpperCase()&&0!==b[b.length-1].pathElements.length&&b.push(new c.Svg.Path),b[b.length-1].pathElements.push(d)}),b}function t(a,b,d){for(var e=new c.Svg.Path(b,d),f=0;f<a.length;f++)for(var g=a[f],h=0;h<g.pathElements.length;h++)e.pathElements.push(g.pathElements[h]);return e}var u={m:[\"x\",\"y\"],l:[\"x\",\"y\"],c:[\"x1\",\"y1\",\"x2\",\"y2\",\"x\",\"y\"],a:[\"rx\",\"ry\",\"xAr\",\"lAf\",\"sf\",\"x\",\"y\"]},v={accuracy:3};c.Svg.Path=c.Class.extend({constructor:f,position:g,remove:h,move:i,line:j,curve:k,arc:l,scale:o,translate:p,transform:q,parse:m,stringify:n,clone:r,splitByCommand:s}),c.Svg.Path.elementDescriptions=u,c.Svg.Path.join=t}(window,document,a),function(a,b,c){\"use strict\";function d(a,b,c,d){this.units=a,this.counterUnits=a===f.x?f.y:f.x,this.chartRect=b,this.axisLength=b[a.rectEnd]-b[a.rectStart],this.gridOffset=b[a.rectOffset],this.ticks=c,this.options=d}function e(a,b,d,e,f){var g=e[\"axis\"+this.units.pos.toUpperCase()],h=this.ticks.map(this.projectValue.bind(this)),i=this.ticks.map(g.labelInterpolationFnc);h.forEach(function(j,k){var l,m={x:0,y:0};l=h[k+1]?h[k+1]-j:Math.max(this.axisLength-j,30),c.isFalseyButZero(i[k])&&\"\"!==i[k]||(\"x\"===this.units.pos?(j=this.chartRect.x1+j,m.x=e.axisX.labelOffset.x,\"start\"===e.axisX.position?m.y=this.chartRect.padding.top+e.axisX.labelOffset.y+(d?5:20):m.y=this.chartRect.y1+e.axisX.labelOffset.y+(d?5:20)):(j=this.chartRect.y1-j,m.y=e.axisY.labelOffset.y-(d?l:0),\"start\"===e.axisY.position?m.x=d?this.chartRect.padding.left+e.axisY.labelOffset.x:this.chartRect.x1-10:m.x=this.chartRect.x2+e.axisY.labelOffset.x+10),g.showGrid&&c.createGrid(j,k,this,this.gridOffset,this.chartRect[this.counterUnits.len](),a,[e.classNames.grid,e.classNames[this.units.dir]],f),g.showLabel&&c.createLabel(j,l,k,i,this,g.offset,m,b,[e.classNames.label,e.classNames[this.units.dir],\"start\"===g.position?e.classNames[g.position]:e.classNames.end],d,f))}.bind(this))}var f={x:{pos:\"x\",len:\"width\",dir:\"horizontal\",rectStart:\"x1\",rectEnd:\"x2\",rectOffset:\"y2\"},y:{pos:\"y\",len:\"height\",dir:\"vertical\",rectStart:\"y2\",rectEnd:\"y1\",rectOffset:\"x1\"}};c.Axis=c.Class.extend({constructor:d,createGridAndLabels:e,projectValue:function(a,b,c){throw new Error(\"Base axis can't be instantiated!\")}}),c.Axis.units=f}(window,document,a),function(a,b,c){\"use strict\";function d(a,b,d,e){var f=e.highLow||c.getHighLow(b,e,a.pos);this.bounds=c.getBounds(d[a.rectEnd]-d[a.rectStart],f,e.scaleMinSpace||20,e.onlyInteger),this.range={min:this.bounds.min,max:this.bounds.max},c.AutoScaleAxis[\"super\"].constructor.call(this,a,d,this.bounds.values,e)}function e(a){return this.axisLength*(+c.getMultiValue(a,this.units.pos)-this.bounds.min)/this.bounds.range}c.AutoScaleAxis=c.Axis.extend({constructor:d,projectValue:e})}(window,document,a),function(a,b,c){\"use strict\";function d(a,b,d,e){var f=e.highLow||c.getHighLow(b,e,a.pos);this.divisor=e.divisor||1,this.ticks=e.ticks||c.times(this.divisor).map(function(a,b){return f.low+(f.high-f.low)/this.divisor*b}.bind(this)),this.ticks.sort(function(a,b){return a-b}),this.range={min:f.low,max:f.high},c.FixedScaleAxis[\"super\"].constructor.call(this,a,d,this.ticks,e),this.stepLength=this.axisLength/this.divisor}function e(a){return this.axisLength*(+c.getMultiValue(a,this.units.pos)-this.range.min)/(this.range.max-this.range.min)}c.FixedScaleAxis=c.Axis.extend({constructor:d,projectValue:e})}(window,document,a),function(a,b,c){\"use strict\";function d(a,b,d,e){c.StepAxis[\"super\"].constructor.call(this,a,d,e.ticks,e);var f=Math.max(1,e.ticks.length-(e.stretch?1:0));this.stepLength=this.axisLength/f}function e(a,b){return this.stepLength*b}c.StepAxis=c.Axis.extend({constructor:d,projectValue:e})}(window,document,a),function(a,b,c){\"use strict\";function d(a){var b=c.normalizeData(this.data,a.reverseData,!0);this.svg=c.createSvg(this.container,a.width,a.height,a.classNames.chart);var d,e,g=this.svg.elem(\"g\").addClass(a.classNames.gridGroup),h=this.svg.elem(\"g\"),i=this.svg.elem(\"g\").addClass(a.classNames.labelGroup),j=c.createChartRect(this.svg,a,f.padding);d=void 0===a.axisX.type?new c.StepAxis(c.Axis.units.x,b.normalized.series,j,c.extend({},a.axisX,{ticks:b.normalized.labels,stretch:a.fullWidth})):a.axisX.type.call(c,c.Axis.units.x,b.normalized.series,j,a.axisX),e=void 0===a.axisY.type?new c.AutoScaleAxis(c.Axis.units.y,b.normalized.series,j,c.extend({},a.axisY,{high:c.isNumeric(a.high)?a.high:a.axisY.high,low:c.isNumeric(a.low)?a.low:a.axisY.low})):a.axisY.type.call(c,c.Axis.units.y,b.normalized.series,j,a.axisY),d.createGridAndLabels(g,i,this.supportsForeignObject,a,this.eventEmitter),e.createGridAndLabels(g,i,this.supportsForeignObject,a,this.eventEmitter),a.showGridBackground&&c.createGridBackground(g,j,a.classNames.gridBackground,this.eventEmitter),b.raw.series.forEach(function(f,g){var i=h.elem(\"g\");i.attr({\"ct:series-name\":f.name,\"ct:meta\":c.serialize(f.meta)}),i.addClass([a.classNames.series,f.className||a.classNames.series+\"-\"+c.alphaNumerate(g)].join(\" \"));var k=[],l=[];b.normalized.series[g].forEach(function(a,h){var i={x:j.x1+d.projectValue(a,h,b.normalized.series[g]),y:j.y1-e.projectValue(a,h,b.normalized.series[g])};k.push(i.x,i.y),l.push({value:a,valueIndex:h,meta:c.getMetaData(f,h)})}.bind(this));var m={lineSmooth:c.getSeriesOption(f,a,\"lineSmooth\"),showPoint:c.getSeriesOption(f,a,\"showPoint\"),showLine:c.getSeriesOption(f,a,\"showLine\"),showArea:c.getSeriesOption(f,a,\"showArea\"),areaBase:c.getSeriesOption(f,a,\"areaBase\")},n=\"function\"==typeof m.lineSmooth?m.lineSmooth:m.lineSmooth?c.Interpolation.monotoneCubic():c.Interpolation.none(),o=n(k,l);if(m.showPoint&&o.pathElements.forEach(function(b){var h=i.elem(\"line\",{x1:b.x,y1:b.y,x2:b.x+.01,y2:b.y},a.classNames.point).attr({\"ct:value\":[b.data.value.x,b.data.value.y].filter(c.isNumeric).join(\",\"),\"ct:meta\":c.serialize(b.data.meta)});this.eventEmitter.emit(\"draw\",{type:\"point\",value:b.data.value,index:b.data.valueIndex,meta:b.data.meta,series:f,seriesIndex:g,axisX:d,axisY:e,group:i,element:h,x:b.x,y:b.y})}.bind(this)),m.showLine){var p=i.elem(\"path\",{d:o.stringify()},a.classNames.line,!0);this.eventEmitter.emit(\"draw\",{type:\"line\",values:b.normalized.series[g],path:o.clone(),chartRect:j,index:g,series:f,seriesIndex:g,seriesMeta:f.meta,axisX:d,axisY:e,group:i,element:p})}if(m.showArea&&e.range){var q=Math.max(Math.min(m.areaBase,e.range.max),e.range.min),r=j.y1-e.projectValue(q);o.splitByCommand(\"M\").filter(function(a){return a.pathElements.length>1}).map(function(a){var b=a.pathElements[0],c=a.pathElements[a.pathElements.length-1];return a.clone(!0).position(0).remove(1).move(b.x,r).line(b.x,b.y).position(a.pathElements.length+1).line(c.x,r)}).forEach(function(c){var h=i.elem(\"path\",{d:c.stringify()},a.classNames.area,!0);this.eventEmitter.emit(\"draw\",{type:\"area\",values:b.normalized.series[g],path:c.clone(),series:f,seriesIndex:g,axisX:d,axisY:e,chartRect:j,index:g,group:i,element:h})}.bind(this))}}.bind(this)),this.eventEmitter.emit(\"created\",{bounds:e.bounds,chartRect:j,axisX:d,axisY:e,svg:this.svg,options:a})}function e(a,b,d,e){c.Line[\"super\"].constructor.call(this,a,b,f,c.extend({},f,d),e)}var f={axisX:{offset:30,position:\"end\",labelOffset:{x:0,y:0},showLabel:!0,showGrid:!0,labelInterpolationFnc:c.noop,type:void 0},axisY:{offset:40,position:\"start\",labelOffset:{x:0,y:0},showLabel:!0,showGrid:!0,labelInterpolationFnc:c.noop,type:void 0,scaleMinSpace:20,onlyInteger:!1},width:void 0,height:void 0,showLine:!0,showPoint:!0,showArea:!1,areaBase:0,lineSmooth:!0,showGridBackground:!1,low:void 0,high:void 0,chartPadding:{top:15,right:15,bottom:5,left:10},fullWidth:!1,reverseData:!1,classNames:{chart:\"ct-chart-line\",label:\"ct-label\",labelGroup:\"ct-labels\",series:\"ct-series\",line:\"ct-line\",point:\"ct-point\",area:\"ct-area\",grid:\"ct-grid\",gridGroup:\"ct-grids\",gridBackground:\"ct-grid-background\",vertical:\"ct-vertical\",horizontal:\"ct-horizontal\",start:\"ct-start\",end:\"ct-end\"}};c.Line=c.Base.extend({constructor:e,createChart:d})}(window,document,a),function(a,b,c){\"use strict\";function d(a){var b,d;a.distributeSeries?(b=c.normalizeData(this.data,a.reverseData,a.horizontalBars?\"x\":\"y\"),b.normalized.series=b.normalized.series.map(function(a){return[a]})):b=c.normalizeData(this.data,a.reverseData,a.horizontalBars?\"x\":\"y\"),this.svg=c.createSvg(this.container,a.width,a.height,a.classNames.chart+(a.horizontalBars?\" \"+a.classNames.horizontalBars:\"\"));var e=this.svg.elem(\"g\").addClass(a.classNames.gridGroup),g=this.svg.elem(\"g\"),h=this.svg.elem(\"g\").addClass(a.classNames.labelGroup);if(a.stackBars&&0!==b.normalized.series.length){var i=c.serialMap(b.normalized.series,function(){\n  return Array.prototype.slice.call(arguments).map(function(a){return a}).reduce(function(a,b){return{x:a.x+(b&&b.x)||0,y:a.y+(b&&b.y)||0}},{x:0,y:0})});d=c.getHighLow([i],a,a.horizontalBars?\"x\":\"y\")}else d=c.getHighLow(b.normalized.series,a,a.horizontalBars?\"x\":\"y\");d.high=+a.high||(0===a.high?0:d.high),d.low=+a.low||(0===a.low?0:d.low);var j,k,l,m,n,o=c.createChartRect(this.svg,a,f.padding);k=a.distributeSeries&&a.stackBars?b.normalized.labels.slice(0,1):b.normalized.labels,a.horizontalBars?(j=m=void 0===a.axisX.type?new c.AutoScaleAxis(c.Axis.units.x,b.normalized.series,o,c.extend({},a.axisX,{highLow:d,referenceValue:0})):a.axisX.type.call(c,c.Axis.units.x,b.normalized.series,o,c.extend({},a.axisX,{highLow:d,referenceValue:0})),l=n=void 0===a.axisY.type?new c.StepAxis(c.Axis.units.y,b.normalized.series,o,{ticks:k}):a.axisY.type.call(c,c.Axis.units.y,b.normalized.series,o,a.axisY)):(l=m=void 0===a.axisX.type?new c.StepAxis(c.Axis.units.x,b.normalized.series,o,{ticks:k}):a.axisX.type.call(c,c.Axis.units.x,b.normalized.series,o,a.axisX),j=n=void 0===a.axisY.type?new c.AutoScaleAxis(c.Axis.units.y,b.normalized.series,o,c.extend({},a.axisY,{highLow:d,referenceValue:0})):a.axisY.type.call(c,c.Axis.units.y,b.normalized.series,o,c.extend({},a.axisY,{highLow:d,referenceValue:0})));var p=a.horizontalBars?o.x1+j.projectValue(0):o.y1-j.projectValue(0),q=[];l.createGridAndLabels(e,h,this.supportsForeignObject,a,this.eventEmitter),j.createGridAndLabels(e,h,this.supportsForeignObject,a,this.eventEmitter),a.showGridBackground&&c.createGridBackground(e,o,a.classNames.gridBackground,this.eventEmitter),b.raw.series.forEach(function(d,e){var f,h,i=e-(b.raw.series.length-1)/2;f=a.distributeSeries&&!a.stackBars?l.axisLength/b.normalized.series.length/2:a.distributeSeries&&a.stackBars?l.axisLength/2:l.axisLength/b.normalized.series[e].length/2,h=g.elem(\"g\"),h.attr({\"ct:series-name\":d.name,\"ct:meta\":c.serialize(d.meta)}),h.addClass([a.classNames.series,d.className||a.classNames.series+\"-\"+c.alphaNumerate(e)].join(\" \")),b.normalized.series[e].forEach(function(g,k){var r,s,t,u;if(u=a.distributeSeries&&!a.stackBars?e:a.distributeSeries&&a.stackBars?0:k,r=a.horizontalBars?{x:o.x1+j.projectValue(g&&g.x?g.x:0,k,b.normalized.series[e]),y:o.y1-l.projectValue(g&&g.y?g.y:0,u,b.normalized.series[e])}:{x:o.x1+l.projectValue(g&&g.x?g.x:0,u,b.normalized.series[e]),y:o.y1-j.projectValue(g&&g.y?g.y:0,k,b.normalized.series[e])},l instanceof c.StepAxis&&(l.options.stretch||(r[l.units.pos]+=f*(a.horizontalBars?-1:1)),r[l.units.pos]+=a.stackBars||a.distributeSeries?0:i*a.seriesBarDistance*(a.horizontalBars?-1:1)),t=q[k]||p,q[k]=t-(p-r[l.counterUnits.pos]),void 0!==g){var v={};v[l.units.pos+\"1\"]=r[l.units.pos],v[l.units.pos+\"2\"]=r[l.units.pos],!a.stackBars||\"accumulate\"!==a.stackMode&&a.stackMode?(v[l.counterUnits.pos+\"1\"]=p,v[l.counterUnits.pos+\"2\"]=r[l.counterUnits.pos]):(v[l.counterUnits.pos+\"1\"]=t,v[l.counterUnits.pos+\"2\"]=q[k]),v.x1=Math.min(Math.max(v.x1,o.x1),o.x2),v.x2=Math.min(Math.max(v.x2,o.x1),o.x2),v.y1=Math.min(Math.max(v.y1,o.y2),o.y1),v.y2=Math.min(Math.max(v.y2,o.y2),o.y1);var w=c.getMetaData(d,k);s=h.elem(\"line\",v,a.classNames.bar).attr({\"ct:value\":[g.x,g.y].filter(c.isNumeric).join(\",\"),\"ct:meta\":c.serialize(w)}),this.eventEmitter.emit(\"draw\",c.extend({type:\"bar\",value:g,index:k,meta:w,series:d,seriesIndex:e,axisX:m,axisY:n,chartRect:o,group:h,element:s},v))}}.bind(this))}.bind(this)),this.eventEmitter.emit(\"created\",{bounds:j.bounds,chartRect:o,axisX:m,axisY:n,svg:this.svg,options:a})}function e(a,b,d,e){c.Bar[\"super\"].constructor.call(this,a,b,f,c.extend({},f,d),e)}var f={axisX:{offset:30,position:\"end\",labelOffset:{x:0,y:0},showLabel:!0,showGrid:!0,labelInterpolationFnc:c.noop,scaleMinSpace:30,onlyInteger:!1},axisY:{offset:40,position:\"start\",labelOffset:{x:0,y:0},showLabel:!0,showGrid:!0,labelInterpolationFnc:c.noop,scaleMinSpace:20,onlyInteger:!1},width:void 0,height:void 0,high:void 0,low:void 0,referenceValue:0,chartPadding:{top:15,right:15,bottom:5,left:10},seriesBarDistance:15,stackBars:!1,stackMode:\"accumulate\",horizontalBars:!1,distributeSeries:!1,reverseData:!1,showGridBackground:!1,classNames:{chart:\"ct-chart-bar\",horizontalBars:\"ct-horizontal-bars\",label:\"ct-label\",labelGroup:\"ct-labels\",series:\"ct-series\",bar:\"ct-bar\",grid:\"ct-grid\",gridGroup:\"ct-grids\",gridBackground:\"ct-grid-background\",vertical:\"ct-vertical\",horizontal:\"ct-horizontal\",start:\"ct-start\",end:\"ct-end\"}};c.Bar=c.Base.extend({constructor:e,createChart:d})}(window,document,a),function(a,b,c){\"use strict\";function d(a,b,c){var d=b.x>a.x;return d&&\"explode\"===c||!d&&\"implode\"===c?\"start\":d&&\"implode\"===c||!d&&\"explode\"===c?\"end\":\"middle\"}function e(a){var b,e,f,h,i,j=c.normalizeData(this.data),k=[],l=a.startAngle;this.svg=c.createSvg(this.container,a.width,a.height,a.donut?a.classNames.chartDonut:a.classNames.chartPie),e=c.createChartRect(this.svg,a,g.padding),f=Math.min(e.width()/2,e.height()/2),i=a.total||j.normalized.series.reduce(function(a,b){return a+b},0);var m=c.quantity(a.donutWidth);\"%\"===m.unit&&(m.value*=f/100),f-=a.donut&&!a.donutSolid?m.value/2:0,h=\"outside\"===a.labelPosition||a.donut&&!a.donutSolid?f:\"center\"===a.labelPosition?0:a.donutSolid?f-m.value/2:f/2,h+=a.labelOffset;var n={x:e.x1+e.width()/2,y:e.y2+e.height()/2},o=1===j.raw.series.filter(function(a){return a.hasOwnProperty(\"value\")?0!==a.value:0!==a}).length;j.raw.series.forEach(function(a,b){k[b]=this.svg.elem(\"g\",null,null)}.bind(this)),a.showLabel&&(b=this.svg.elem(\"g\",null,null)),j.raw.series.forEach(function(e,g){if(0!==j.normalized.series[g]||!a.ignoreEmptyValues){k[g].attr({\"ct:series-name\":e.name}),k[g].addClass([a.classNames.series,e.className||a.classNames.series+\"-\"+c.alphaNumerate(g)].join(\" \"));var p=i>0?l+j.normalized.series[g]/i*360:0,q=Math.max(0,l-(0===g||o?0:.2));p-q>=359.99&&(p=q+359.99);var r,s,t,u=c.polarToCartesian(n.x,n.y,f,q),v=c.polarToCartesian(n.x,n.y,f,p),w=new c.Svg.Path(!a.donut||a.donutSolid).move(v.x,v.y).arc(f,f,0,p-l>180,0,u.x,u.y);a.donut?a.donutSolid&&(t=f-m.value,r=c.polarToCartesian(n.x,n.y,t,l-(0===g||o?0:.2)),s=c.polarToCartesian(n.x,n.y,t,p),w.line(r.x,r.y),w.arc(t,t,0,p-l>180,1,s.x,s.y)):w.line(n.x,n.y);var x=a.classNames.slicePie;a.donut&&(x=a.classNames.sliceDonut,a.donutSolid&&(x=a.classNames.sliceDonutSolid));var y=k[g].elem(\"path\",{d:w.stringify()},x);if(y.attr({\"ct:value\":j.normalized.series[g],\"ct:meta\":c.serialize(e.meta)}),a.donut&&!a.donutSolid&&(y._node.style.strokeWidth=m.value+\"px\"),this.eventEmitter.emit(\"draw\",{type:\"slice\",value:j.normalized.series[g],totalDataSum:i,index:g,meta:e.meta,series:e,group:k[g],element:y,path:w.clone(),center:n,radius:f,startAngle:l,endAngle:p}),a.showLabel){var z;z=1===j.raw.series.length?{x:n.x,y:n.y}:c.polarToCartesian(n.x,n.y,h,l+(p-l)/2);var A;A=j.normalized.labels&&!c.isFalseyButZero(j.normalized.labels[g])?j.normalized.labels[g]:j.normalized.series[g];var B=a.labelInterpolationFnc(A,g);if(B||0===B){var C=b.elem(\"text\",{dx:z.x,dy:z.y,\"text-anchor\":d(n,z,a.labelDirection)},a.classNames.label).text(\"\"+B);this.eventEmitter.emit(\"draw\",{type:\"label\",index:g,group:b,element:C,text:\"\"+B,x:z.x,y:z.y})}}l=p}}.bind(this)),this.eventEmitter.emit(\"created\",{chartRect:e,svg:this.svg,options:a})}function f(a,b,d,e){c.Pie[\"super\"].constructor.call(this,a,b,g,c.extend({},g,d),e)}var g={width:void 0,height:void 0,chartPadding:5,classNames:{chartPie:\"ct-chart-pie\",chartDonut:\"ct-chart-donut\",series:\"ct-series\",slicePie:\"ct-slice-pie\",sliceDonut:\"ct-slice-donut\",sliceDonutSolid:\"ct-slice-donut-solid\",label:\"ct-label\"},startAngle:0,total:void 0,donut:!1,donutSolid:!1,donutWidth:60,showLabel:!0,labelOffset:0,labelPosition:\"inside\",labelInterpolationFnc:c.noop,labelDirection:\"neutral\",reverseData:!1,ignoreEmptyValues:!1};c.Pie=c.Base.extend({constructor:f,createChart:e,determineAnchorPosition:d})}(window,document,a),a});"
  },
  {
    "path": "chartist/style.css",
    "content": ".ct-double-octave:after,.ct-major-eleventh:after,.ct-major-second:after,.ct-major-seventh:after,.ct-major-sixth:after,.ct-major-tenth:after,.ct-major-third:after,.ct-major-twelfth:after,.ct-minor-second:after,.ct-minor-seventh:after,.ct-minor-sixth:after,.ct-minor-third:after,.ct-octave:after,.ct-perfect-fifth:after,.ct-perfect-fourth:after,.ct-square:after{content:\"\";clear:both}.ct-label{fill:rgba(0,0,0,.4);color:rgba(0,0,0,.4);font-size:.75rem;line-height:1}.ct-grid-background,.ct-line{fill:none}.ct-chart-bar .ct-label,.ct-chart-line .ct-label{display:block;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex}.ct-chart-donut .ct-label,.ct-chart-pie .ct-label{dominant-baseline:central}.ct-label.ct-horizontal.ct-start{-webkit-box-align:flex-end;-webkit-align-items:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-ms-flex-pack:flex-start;justify-content:flex-start;text-align:left;text-anchor:start}.ct-label.ct-horizontal.ct-end{-webkit-box-align:flex-start;-webkit-align-items:flex-start;-ms-flex-align:flex-start;align-items:flex-start;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-ms-flex-pack:flex-start;justify-content:flex-start;text-align:left;text-anchor:start}.ct-label.ct-vertical.ct-start{-webkit-box-align:flex-end;-webkit-align-items:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-box-pack:flex-end;-webkit-justify-content:flex-end;-ms-flex-pack:flex-end;justify-content:flex-end;text-align:right;text-anchor:end}.ct-label.ct-vertical.ct-end{-webkit-box-align:flex-end;-webkit-align-items:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-ms-flex-pack:flex-start;justify-content:flex-start;text-align:left;text-anchor:start}.ct-chart-bar .ct-label.ct-horizontal.ct-start{-webkit-box-align:flex-end;-webkit-align-items:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center;text-anchor:start}.ct-chart-bar .ct-label.ct-horizontal.ct-end{-webkit-box-align:flex-start;-webkit-align-items:flex-start;-ms-flex-align:flex-start;align-items:flex-start;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center;text-anchor:start}.ct-chart-bar.ct-horizontal-bars .ct-label.ct-horizontal.ct-start{-webkit-box-align:flex-end;-webkit-align-items:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-ms-flex-pack:flex-start;justify-content:flex-start;text-align:left;text-anchor:start}.ct-chart-bar.ct-horizontal-bars .ct-label.ct-horizontal.ct-end{-webkit-box-align:flex-start;-webkit-align-items:flex-start;-ms-flex-align:flex-start;align-items:flex-start;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-ms-flex-pack:flex-start;justify-content:flex-start;text-align:left;text-anchor:start}.ct-chart-bar.ct-horizontal-bars .ct-label.ct-vertical.ct-start{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:flex-end;-webkit-justify-content:flex-end;-ms-flex-pack:flex-end;justify-content:flex-end;text-align:right;text-anchor:end}.ct-chart-bar.ct-horizontal-bars .ct-label.ct-vertical.ct-end{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-ms-flex-pack:flex-start;justify-content:flex-start;text-align:left;text-anchor:end}.ct-grid{stroke:rgba(0,0,0,.2);stroke-width:1px;stroke-dasharray:2px}.ct-point{stroke-width:10px;stroke-linecap:round}.ct-line{stroke-width:4px}.ct-area{stroke:none;fill-opacity:.1}.ct-bar{fill:none;stroke-width:10px}.ct-slice-donut{fill:none;stroke-width:60px}.ct-series-a .ct-bar,.ct-series-a .ct-line,.ct-series-a .ct-point,.ct-series-a .ct-slice-donut{stroke:#d70206}.ct-series-a .ct-area,.ct-series-a .ct-slice-donut-solid,.ct-series-a .ct-slice-pie{fill:#d70206}.ct-series-b .ct-bar,.ct-series-b .ct-line,.ct-series-b .ct-point,.ct-series-b .ct-slice-donut{stroke:#f05b4f}.ct-series-b .ct-area,.ct-series-b .ct-slice-donut-solid,.ct-series-b .ct-slice-pie{fill:#f05b4f}.ct-series-c .ct-bar,.ct-series-c .ct-line,.ct-series-c .ct-point,.ct-series-c .ct-slice-donut{stroke:#f4c63d}.ct-series-c .ct-area,.ct-series-c .ct-slice-donut-solid,.ct-series-c .ct-slice-pie{fill:#f4c63d}.ct-series-d .ct-bar,.ct-series-d .ct-line,.ct-series-d .ct-point,.ct-series-d .ct-slice-donut{stroke:#d17905}.ct-series-d .ct-area,.ct-series-d .ct-slice-donut-solid,.ct-series-d .ct-slice-pie{fill:#d17905}.ct-series-e .ct-bar,.ct-series-e .ct-line,.ct-series-e .ct-point,.ct-series-e .ct-slice-donut{stroke:#453d3f}.ct-series-e .ct-area,.ct-series-e .ct-slice-donut-solid,.ct-series-e .ct-slice-pie{fill:#453d3f}.ct-series-f .ct-bar,.ct-series-f .ct-line,.ct-series-f .ct-point,.ct-series-f .ct-slice-donut{stroke:#59922b}.ct-series-f .ct-area,.ct-series-f .ct-slice-donut-solid,.ct-series-f .ct-slice-pie{fill:#59922b}.ct-series-g .ct-bar,.ct-series-g .ct-line,.ct-series-g .ct-point,.ct-series-g .ct-slice-donut{stroke:#0544d3}.ct-series-g .ct-area,.ct-series-g .ct-slice-donut-solid,.ct-series-g .ct-slice-pie{fill:#0544d3}.ct-series-h .ct-bar,.ct-series-h .ct-line,.ct-series-h .ct-point,.ct-series-h .ct-slice-donut{stroke:#6b0392}.ct-series-h .ct-area,.ct-series-h .ct-slice-donut-solid,.ct-series-h .ct-slice-pie{fill:#6b0392}.ct-series-i .ct-bar,.ct-series-i .ct-line,.ct-series-i .ct-point,.ct-series-i .ct-slice-donut{stroke:#f05b4f}.ct-series-i .ct-area,.ct-series-i .ct-slice-donut-solid,.ct-series-i .ct-slice-pie{fill:#f05b4f}.ct-series-j .ct-bar,.ct-series-j .ct-line,.ct-series-j .ct-point,.ct-series-j .ct-slice-donut{stroke:#dda458}.ct-series-j .ct-area,.ct-series-j .ct-slice-donut-solid,.ct-series-j .ct-slice-pie{fill:#dda458}.ct-series-k .ct-bar,.ct-series-k .ct-line,.ct-series-k .ct-point,.ct-series-k .ct-slice-donut{stroke:#eacf7d}.ct-series-k .ct-area,.ct-series-k .ct-slice-donut-solid,.ct-series-k .ct-slice-pie{fill:#eacf7d}.ct-series-l .ct-bar,.ct-series-l .ct-line,.ct-series-l .ct-point,.ct-series-l .ct-slice-donut{stroke:#86797d}.ct-series-l .ct-area,.ct-series-l .ct-slice-donut-solid,.ct-series-l .ct-slice-pie{fill:#86797d}.ct-series-m .ct-bar,.ct-series-m .ct-line,.ct-series-m .ct-point,.ct-series-m .ct-slice-donut{stroke:#b2c326}.ct-series-m .ct-area,.ct-series-m .ct-slice-donut-solid,.ct-series-m .ct-slice-pie{fill:#b2c326}.ct-series-n .ct-bar,.ct-series-n .ct-line,.ct-series-n .ct-point,.ct-series-n .ct-slice-donut{stroke:#6188e2}.ct-series-n .ct-area,.ct-series-n .ct-slice-donut-solid,.ct-series-n .ct-slice-pie{fill:#6188e2}.ct-series-o .ct-bar,.ct-series-o .ct-line,.ct-series-o .ct-point,.ct-series-o .ct-slice-donut{stroke:#a748ca}.ct-series-o .ct-area,.ct-series-o .ct-slice-donut-solid,.ct-series-o .ct-slice-pie{fill:#a748ca}.ct-square{display:block;position:relative;width:100%}.ct-square:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:100%}.ct-square:after{display:table}.ct-square>svg{display:block;position:absolute;top:0;left:0}.ct-minor-second{display:block;position:relative;width:100%}.ct-minor-second:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:93.75%}.ct-minor-second:after{display:table}.ct-minor-second>svg{display:block;position:absolute;top:0;left:0}.ct-major-second{display:block;position:relative;width:100%}.ct-major-second:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:88.8888888889%}.ct-major-second:after{display:table}.ct-major-second>svg{display:block;position:absolute;top:0;left:0}.ct-minor-third{display:block;position:relative;width:100%}.ct-minor-third:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:83.3333333333%}.ct-minor-third:after{display:table}.ct-minor-third>svg{display:block;position:absolute;top:0;left:0}.ct-major-third{display:block;position:relative;width:100%}.ct-major-third:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:80%}.ct-major-third:after{display:table}.ct-major-third>svg{display:block;position:absolute;top:0;left:0}.ct-perfect-fourth{display:block;position:relative;width:100%}.ct-perfect-fourth:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:75%}.ct-perfect-fourth:after{display:table}.ct-perfect-fourth>svg{display:block;position:absolute;top:0;left:0}.ct-perfect-fifth{display:block;position:relative;width:100%}.ct-perfect-fifth:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:66.6666666667%}.ct-perfect-fifth:after{display:table}.ct-perfect-fifth>svg{display:block;position:absolute;top:0;left:0}.ct-minor-sixth{display:block;position:relative;width:100%}.ct-minor-sixth:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:62.5%}.ct-minor-sixth:after{display:table}.ct-minor-sixth>svg{display:block;position:absolute;top:0;left:0}.ct-golden-section{display:block;position:relative;width:100%}.ct-golden-section:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:61.804697157%}.ct-golden-section:after{content:\"\";display:table;clear:both}.ct-golden-section>svg{display:block;position:absolute;top:0;left:0}.ct-major-sixth{display:block;position:relative;width:100%}.ct-major-sixth:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:60%}.ct-major-sixth:after{display:table}.ct-major-sixth>svg{display:block;position:absolute;top:0;left:0}.ct-minor-seventh{display:block;position:relative;width:100%}.ct-minor-seventh:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:56.25%}.ct-minor-seventh:after{display:table}.ct-minor-seventh>svg{display:block;position:absolute;top:0;left:0}.ct-major-seventh{display:block;position:relative;width:100%}.ct-major-seventh:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:53.3333333333%}.ct-major-seventh:after{display:table}.ct-major-seventh>svg{display:block;position:absolute;top:0;left:0}.ct-octave{display:block;position:relative;width:100%}.ct-octave:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:50%}.ct-octave:after{display:table}.ct-octave>svg{display:block;position:absolute;top:0;left:0}.ct-major-tenth{display:block;position:relative;width:100%}.ct-major-tenth:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:40%}.ct-major-tenth:after{display:table}.ct-major-tenth>svg{display:block;position:absolute;top:0;left:0}.ct-major-eleventh{display:block;position:relative;width:100%}.ct-major-eleventh:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:37.5%}.ct-major-eleventh:after{display:table}.ct-major-eleventh>svg{display:block;position:absolute;top:0;left:0}.ct-major-twelfth{display:block;position:relative;width:100%}.ct-major-twelfth:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:33.3333333333%}.ct-major-twelfth:after{display:table}.ct-major-twelfth>svg{display:block;position:absolute;top:0;left:0}.ct-double-octave{display:block;position:relative;width:100%}.ct-double-octave:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:25%}.ct-double-octave:after{display:table}.ct-double-octave>svg{display:block;position:absolute;top:0;left:0}\n\n/*Set a big size for rows and bars..*/\n.chartist-big {}\n.chartist-big .ct-series-a .ct-bar, \n.chartist-big .ct-series-a .ct-line, \n.chartist-big .ct-series-a .ct-point, \n.chartist-big .ct-series-a .ct-slice-donut,\n.chartist-big .ct-series-b .ct-bar, \n.chartist-big .ct-series-b .ct-line, \n.chartist-big .ct-series-b .ct-point, \n.chartist-big .ct-series-b .ct-slice-donut,\n.chartist-big .ct-series-c .ct-bar, \n.chartist-big .ct-series-c .ct-line, \n.chartist-big .ct-series-c .ct-point, \n.chartist-big .ct-series-c .ct-slice-donut,\n.chartist-big .ct-series-d .ct-bar, \n.chartist-big .ct-series-d .ct-line, \n.chartist-big .ct-series-d .ct-point, \n.chartist-big .ct-series-d .ct-slice-donut {\n    stroke-width: 20px;\n}\n\n/*Set a big size for rows and bars..*/\n.chartist-huge {}\n.chartist-huge .ct-series-a .ct-bar, \n.chartist-huge .ct-series-a .ct-line, \n.chartist-huge .ct-series-a .ct-point, \n.chartist-huge .ct-series-a .ct-slice-donut,\n.chartist-huge .ct-series-b .ct-bar, \n.chartist-huge .ct-series-b .ct-line, \n.chartist-huge .ct-series-b .ct-point, \n.chartist-huge .ct-series-b .ct-slice-donut,\n.chartist-huge .ct-series-c .ct-bar, \n.chartist-huge .ct-series-c .ct-line, \n.chartist-huge .ct-series-c .ct-point, \n.chartist-huge .ct-series-c .ct-slice-donut,\n.chartist-huge .ct-series-d .ct-bar, \n.chartist-huge .ct-series-d .ct-line, \n.chartist-huge .ct-series-d .ct-point, \n.chartist-huge .ct-series-d .ct-slice-donut {\n    stroke-width: 30px;\n}\n\n/*Sets a color scheme for the chart.*/\n.chartist-white {}\n.chartist-white.text-black .ct-label {\n    fill: #000;\n    color: #000;\n}\n.chartist-white.text-white .ct-label {\n    fill:#fff;\n    color:#fff;\n}\n.chartist-white .ct-label {\n    fill: rgba(255,255,255,.4);\n    color: rgba(255,255,255,.4);\n}\n.chartist-white .ct-grid {\n    stroke: rgba(255,255,255,.2);\n}\n.chartist-white .ct-series-a .ct-bar, \n.chartist-white .ct-series-a .ct-line, \n.chartist-white .ct-series-a .ct-point, \n.chartist-white .ct-series-a .ct-slice-donut {\n    stroke: rgba(255, 255, 255, 1);\n}\n.chartist-white .ct-series-b .ct-bar, \n.chartist-white .ct-series-b .ct-line, \n.chartist-white .ct-series-b .ct-point, \n.chartist-white .ct-series-b .ct-slice-donut {\n    stroke: rgba(255, 255, 255, 0.7);\n}\n.chartist-white .ct-series-c .ct-bar, \n.chartist-white .ct-series-c .ct-line, \n.chartist-white .ct-series-c .ct-point, \n.chartist-white .ct-series-c .ct-slice-donut {\n    stroke: rgba(255, 255, 255, 0.4);\n}\n.chartist-white .ct-series-d .ct-bar, \n.chartist-white .ct-series-d .ct-line, \n.chartist-white .ct-series-d .ct-point, \n.chartist-white .ct-series-d .ct-slice-donut {\n    stroke: rgba(255, 255, 255, 0.2);\n}\n.chartist-white .ct-series-a .ct-area, \n.chartist-white .ct-series-a .ct-slice-donut-solid, \n.chartist-white .ct-series-a .ct-slice-pie {\n    fill: rgba(255, 255, 255, 1);\n}\n.chartist-white .ct-series-b .ct-area, \n.chartist-white .ct-series-b .ct-slice-donut-solid, \n.chartist-white .ct-series-b .ct-slice-pie {\n    fill: rgba(255, 255, 255, 0.7);\n}\n.chartist-white .ct-series-c .ct-area, \n.chartist-white .ct-series-c .ct-slice-donut-solid, \n.chartist-white .ct-series-c .ct-slice-pie {\n    fill: rgba(255, 255, 255, 0.4);\n}\n.chartist-white .ct-series-d .ct-area, \n.chartist-white .ct-series-d .ct-slice-donut-solid, \n.chartist-white .ct-series-d .ct-slice-pie {\n    fill: rgba(255, 255, 255, 0.2);\n}\n\n/*Sets a color scheme for the chart.*/\n.chartist-red {}\n.chartist-red.text-black .ct-label {\n    fill: #000;\n    color: #000;\n}\n.chartist-red.text-white .ct-label {\n    fill:#fff;\n    color:#fff;\n}\n.chartist-red .ct-label {\n    fill: rgba(244, 67, 54,.4);\n    color: rgba(244, 67, 54,.4);\n}\n.chartist-red .ct-grid {\n    stroke: rgba(244, 67, 54,.2);\n}\n.chartist-red .ct-series-a .ct-bar, \n.chartist-red .ct-series-a .ct-line, \n.chartist-red .ct-series-a .ct-point, \n.chartist-red .ct-series-a .ct-slice-donut {\n    stroke: rgba(244, 67, 54, 1);\n}\n.chartist-red .ct-series-b .ct-bar, \n.chartist-red .ct-series-b .ct-line, \n.chartist-red .ct-series-b .ct-point, \n.chartist-red .ct-series-b .ct-slice-donut {\n    stroke: rgba(244, 67, 54, 0.7);\n}\n.chartist-red .ct-series-c .ct-bar, \n.chartist-red .ct-series-c .ct-line, \n.chartist-red .ct-series-c .ct-point, \n.chartist-red .ct-series-c .ct-slice-donut {\n    stroke: rgba(244, 67, 54, 0.4);\n}\n.chartist-red .ct-series-d .ct-bar, \n.chartist-red .ct-series-d .ct-line, \n.chartist-red .ct-series-d .ct-point, \n.chartist-red .ct-series-d .ct-slice-donut {\n    stroke: rgba(244, 67, 54, 0.2);\n}\n.chartist-red .ct-series-a .ct-area, \n.chartist-red .ct-series-a .ct-slice-donut-solid, \n.chartist-red .ct-series-a .ct-slice-pie {\n    fill: rgba(244, 67, 54, 1);\n}\n.chartist-red .ct-series-b .ct-area, \n.chartist-red .ct-series-b .ct-slice-donut-solid, \n.chartist-red .ct-series-b .ct-slice-pie {\n    fill: rgba(244, 67, 54, 0.7);\n}\n.chartist-red .ct-series-c .ct-area, \n.chartist-red .ct-series-c .ct-slice-donut-solid, \n.chartist-red .ct-series-c .ct-slice-pie {\n    fill: rgba(244, 67, 54, 0.4);\n}\n.chartist-red .ct-series-d .ct-area, \n.chartist-red .ct-series-d .ct-slice-donut-solid, \n.chartist-red .ct-series-d .ct-slice-pie {\n    fill: rgba(244, 67, 54, 0.2);\n}\n\n/*Sets a color scheme for the chart.*/\n.chartist-pink {}\n.chartist-pink.text-black .ct-label {\n    fill: #000;\n    color: #000;\n}\n.chartist-pink.text-white .ct-label {\n    fill:#fff;\n    color:#fff;\n}\n.chartist-pink .ct-label {\n    fill: rgba(233, 30, 99,.4);\n    color: rgba(233, 30, 99,.4);\n}\n.chartist-pink .ct-grid {\n    stroke: rgba(233, 30, 99,.2);\n}\n.chartist-pink .ct-series-a .ct-bar, \n.chartist-pink .ct-series-a .ct-line, \n.chartist-pink .ct-series-a .ct-point, \n.chartist-pink .ct-series-a .ct-slice-donut {\n    stroke: rgba(233, 30, 99, 1);\n}\n.chartist-pink .ct-series-b .ct-bar, \n.chartist-pink .ct-series-b .ct-line, \n.chartist-pink .ct-series-b .ct-point, \n.chartist-pink .ct-series-b .ct-slice-donut {\n    stroke: rgba(233, 30, 99, 0.7);\n}\n.chartist-pink .ct-series-c .ct-bar, \n.chartist-pink .ct-series-c .ct-line, \n.chartist-pink .ct-series-c .ct-point, \n.chartist-pink .ct-series-c .ct-slice-donut {\n    stroke: rgba(233, 30, 99, 0.4);\n}\n.chartist-pink .ct-series-d .ct-bar, \n.chartist-pink .ct-series-d .ct-line, \n.chartist-pink .ct-series-d .ct-point, \n.chartist-pink .ct-series-d .ct-slice-donut {\n    stroke: rgba(233, 30, 99, 0.2);\n}\n.chartist-pink .ct-series-a .ct-area, \n.chartist-pink .ct-series-a .ct-slice-donut-solid, \n.chartist-pink .ct-series-a .ct-slice-pie {\n    fill: rgba(233, 30, 99, 1);\n}\n.chartist-pink .ct-series-b .ct-area, \n.chartist-pink .ct-series-b .ct-slice-donut-solid, \n.chartist-pink .ct-series-b .ct-slice-pie {\n    fill: rgba(233, 30, 99, 0.7);\n}\n.chartist-pink .ct-series-c .ct-area, \n.chartist-pink .ct-series-c .ct-slice-donut-solid, \n.chartist-pink .ct-series-c .ct-slice-pie {\n    fill: rgba(233, 30, 99, 0.4);\n}\n.chartist-pink .ct-series-d .ct-area, \n.chartist-pink .ct-series-d .ct-slice-donut-solid, \n.chartist-pink .ct-series-d .ct-slice-pie {\n    fill: rgba(233, 30, 99, 0.2);\n}\n\n/*Sets a color scheme for the chart.*/\n.chartist-purple {}\n.chartist-purple.text-black .ct-label {\n    fill: #000;\n    color: #000;\n}\n.chartist-purple.text-white .ct-label {\n    fill:#fff;\n    color:#fff;\n}\n.chartist-purple .ct-label {\n    fill: rgba(156, 39, 176,.4);\n    color: rgba(156, 39, 176,.4);\n}\n.chartist-purple .ct-grid {\n    stroke: rgba(156, 39, 176,.2);\n}\n.chartist-purple .ct-series-a .ct-bar, \n.chartist-purple .ct-series-a .ct-line, \n.chartist-purple .ct-series-a .ct-point, \n.chartist-purple .ct-series-a .ct-slice-donut {\n    stroke: rgba(156, 39, 176, 1);\n}\n.chartist-purple .ct-series-b .ct-bar, \n.chartist-purple .ct-series-b .ct-line, \n.chartist-purple .ct-series-b .ct-point, \n.chartist-purple .ct-series-b .ct-slice-donut {\n    stroke: rgba(156, 39, 176, 0.7);\n}\n.chartist-purple .ct-series-c .ct-bar, \n.chartist-purple .ct-series-c .ct-line, \n.chartist-purple .ct-series-c .ct-point, \n.chartist-purple .ct-series-c .ct-slice-donut {\n    stroke: rgba(156, 39, 176, 0.4);\n}\n.chartist-purple .ct-series-d .ct-bar, \n.chartist-purple .ct-series-d .ct-line, \n.chartist-purple .ct-series-d .ct-point, \n.chartist-purple .ct-series-d .ct-slice-donut {\n    stroke: rgba(156, 39, 176, 0.2);\n}\n.chartist-purple .ct-series-a .ct-area, \n.chartist-purple .ct-series-a .ct-slice-donut-solid, \n.chartist-purple .ct-series-a .ct-slice-pie {\n    fill: rgba(156, 39, 176, 1);\n}\n.chartist-purple .ct-series-b .ct-area, \n.chartist-purple .ct-series-b .ct-slice-donut-solid, \n.chartist-purple .ct-series-b .ct-slice-pie {\n    fill: rgba(156, 39, 176, 0.7);\n}\n.chartist-purple .ct-series-c .ct-area, \n.chartist-purple .ct-series-c .ct-slice-donut-solid, \n.chartist-purple .ct-series-c .ct-slice-pie {\n    fill: rgba(156, 39, 176, 0.4);\n}\n.chartist-purple .ct-series-d .ct-area, \n.chartist-purple .ct-series-d .ct-slice-donut-solid, \n.chartist-purple .ct-series-d .ct-slice-pie {\n    fill: rgba(156, 39, 176, 0.2);\n}\n\n/*Sets a color scheme for the chart.*/\n.chartist-deep-purple {}\n.chartist-deep.text-white-purple .ct-label {\n    fill:#fff;\n    color:#fff;\n}\n.chartist-deep-purple .ct-label {\n    fill: rgba(103, 58, 183,.4);\n    color: rgba(103, 58, 183,.4);\n}\n.chartist-deep-purple .ct-grid {\n    stroke: rgba(103, 58, 183,.2);\n}\n.chartist-deep-purple .ct-series-a .ct-bar, \n.chartist-deep-purple .ct-series-a .ct-line, \n.chartist-deep-purple .ct-series-a .ct-point, \n.chartist-deep-purple .ct-series-a .ct-slice-donut {\n    stroke: rgba(103, 58, 183, 1);\n}\n.chartist-deep-purple .ct-series-b .ct-bar, \n.chartist-deep-purple .ct-series-b .ct-line, \n.chartist-deep-purple .ct-series-b .ct-point, \n.chartist-deep-purple .ct-series-b .ct-slice-donut {\n    stroke: rgba(103, 58, 183, 0.7);\n}\n.chartist-deep-purple .ct-series-c .ct-bar, \n.chartist-deep-purple .ct-series-c .ct-line, \n.chartist-deep-purple .ct-series-c .ct-point, \n.chartist-deep-purple .ct-series-c .ct-slice-donut {\n    stroke: rgba(103, 58, 183, 0.4);\n}\n.chartist-deep-purple .ct-series-d .ct-bar, \n.chartist-deep-purple .ct-series-d .ct-line, \n.chartist-deep-purple .ct-series-d .ct-point, \n.chartist-deep-purple .ct-series-d .ct-slice-donut {\n    stroke: rgba(103, 58, 183, 0.2);\n}\n.chartist-deep-purple .ct-series-a .ct-area, \n.chartist-deep-purple .ct-series-a .ct-slice-donut-solid, \n.chartist-deep-purple .ct-series-a .ct-slice-pie {\n    fill: rgba(103, 58, 183, 1);\n}\n.chartist-deep-purple .ct-series-b .ct-area, \n.chartist-deep-purple .ct-series-b .ct-slice-donut-solid, \n.chartist-deep-purple .ct-series-b .ct-slice-pie {\n    fill: rgba(103, 58, 183, 0.7);\n}\n.chartist-deep-purple .ct-series-c .ct-area, \n.chartist-deep-purple .ct-series-c .ct-slice-donut-solid, \n.chartist-deep-purple .ct-series-c .ct-slice-pie {\n    fill: rgba(103, 58, 183, 0.4);\n}\n.chartist-deep-purple .ct-series-d .ct-area, \n.chartist-deep-purple .ct-series-d .ct-slice-donut-solid, \n.chartist-deep-purple .ct-series-d .ct-slice-pie {\n    fill: rgba(103, 58, 183, 0.2);\n}\n\n/*Sets a color scheme for the chart.*/\n.chartist-indigo {}\n.chartist-indigo.text-black .ct-label {\n    fill: #000;\n    color: #000;\n}\n.chartist-indigo.text-white .ct-label {\n    fill:#fff;\n    color:#fff;\n}\n.chartist-indigo .ct-label {\n    fill: rgba(63, 81, 181,.4);\n    color: rgba(63, 81, 181,.4);\n}\n.chartist-indigo .ct-grid {\n    stroke: rgba(63, 81, 181,.2);\n}\n.chartist-indigo .ct-series-a .ct-bar, \n.chartist-indigo .ct-series-a .ct-line, \n.chartist-indigo .ct-series-a .ct-point, \n.chartist-indigo .ct-series-a .ct-slice-donut {\n    stroke: rgba(63, 81, 181, 1);\n}\n.chartist-indigo .ct-series-b .ct-bar, \n.chartist-indigo .ct-series-b .ct-line, \n.chartist-indigo .ct-series-b .ct-point, \n.chartist-indigo .ct-series-b .ct-slice-donut {\n    stroke: rgba(63, 81, 181, 0.7);\n}\n.chartist-indigo .ct-series-c .ct-bar, \n.chartist-indigo .ct-series-c .ct-line, \n.chartist-indigo .ct-series-c .ct-point, \n.chartist-indigo .ct-series-c .ct-slice-donut {\n    stroke: rgba(63, 81, 181, 0.4);\n}\n.chartist-indigo .ct-series-d .ct-bar, \n.chartist-indigo .ct-series-d .ct-line, \n.chartist-indigo .ct-series-d .ct-point, \n.chartist-indigo .ct-series-d .ct-slice-donut {\n    stroke: rgba(63, 81, 181, 0.2);\n}\n.chartist-indigo .ct-series-a .ct-area, \n.chartist-indigo .ct-series-a .ct-slice-donut-solid, \n.chartist-indigo .ct-series-a .ct-slice-pie {\n    fill: rgba(63, 81, 181, 1);\n}\n.chartist-indigo .ct-series-b .ct-area, \n.chartist-indigo .ct-series-b .ct-slice-donut-solid, \n.chartist-indigo .ct-series-b .ct-slice-pie {\n    fill: rgba(63, 81, 181, 0.7);\n}\n.chartist-indigo .ct-series-c .ct-area, \n.chartist-indigo .ct-series-c .ct-slice-donut-solid, \n.chartist-indigo .ct-series-c .ct-slice-pie {\n    fill: rgba(63, 81, 181, 0.4);\n}\n.chartist-indigo .ct-series-d .ct-area, \n.chartist-indigo .ct-series-d .ct-slice-donut-solid, \n.chartist-indigo .ct-series-d .ct-slice-pie {\n    fill: rgba(63, 81, 181, 0.2);\n}\n\n/*Sets a color scheme for the chart.*/\n.chartist-blue {}\n.chartist-blue.text-black .ct-label {\n    fill: #000;\n    color: #000;\n}\n.chartist-blue.text-white .ct-label {\n    fill:#fff;\n    color:#fff;\n}\n.chartist-blue .ct-label {\n    fill: rgba(33, 150, 243,.4);\n    color: rgba(33, 150, 243,.4);\n}\n.chartist-blue .ct-grid {\n    stroke: rgba(33, 150, 243,.2);\n}\n.chartist-blue .ct-series-a .ct-bar, \n.chartist-blue .ct-series-a .ct-line, \n.chartist-blue .ct-series-a .ct-point, \n.chartist-blue .ct-series-a .ct-slice-donut {\n    stroke: rgba(33, 150, 243, 1);\n}\n.chartist-blue .ct-series-b .ct-bar, \n.chartist-blue .ct-series-b .ct-line, \n.chartist-blue .ct-series-b .ct-point, \n.chartist-blue .ct-series-b .ct-slice-donut {\n    stroke: rgba(33, 150, 243, 0.7);\n}\n.chartist-blue .ct-series-c .ct-bar, \n.chartist-blue .ct-series-c .ct-line, \n.chartist-blue .ct-series-c .ct-point, \n.chartist-blue .ct-series-c .ct-slice-donut {\n    stroke: rgba(33, 150, 243, 0.4);\n}\n.chartist-blue .ct-series-d .ct-bar, \n.chartist-blue .ct-series-d .ct-line, \n.chartist-blue .ct-series-d .ct-point, \n.chartist-blue .ct-series-d .ct-slice-donut {\n    stroke: rgba(33, 150, 243, 0.2);\n}\n.chartist-blue .ct-series-a .ct-area, \n.chartist-blue .ct-series-a .ct-slice-donut-solid, \n.chartist-blue .ct-series-a .ct-slice-pie {\n    fill: rgba(33, 150, 243, 1);\n}\n.chartist-blue .ct-series-b .ct-area, \n.chartist-blue .ct-series-b .ct-slice-donut-solid, \n.chartist-blue .ct-series-b .ct-slice-pie {\n    fill: rgba(33, 150, 243, 0.7);\n}\n.chartist-blue .ct-series-c .ct-area, \n.chartist-blue .ct-series-c .ct-slice-donut-solid, \n.chartist-blue .ct-series-c .ct-slice-pie {\n    fill: rgba(33, 150, 243, 0.4);\n}\n.chartist-blue .ct-series-d .ct-area, \n.chartist-blue .ct-series-d .ct-slice-donut-solid, \n.chartist-blue .ct-series-d .ct-slice-pie {\n    fill: rgba(33, 150, 243, 0.2);\n}\n\n/*Sets a color scheme for the chart.*/\n.chartist-light-blue {}\n.chartist-light.text-white-blue .ct-label {\n    fill:#fff;\n    color:#fff;\n}\n.chartist-light-blue .ct-label {\n    fill: rgba(3, 169, 244,.4);\n    color: rgba(3, 169, 244,.4);\n}\n.chartist-light-blue .ct-grid {\n    stroke: rgba(3, 169, 244,.2);\n}\n.chartist-light-blue .ct-series-a .ct-bar, \n.chartist-light-blue .ct-series-a .ct-line, \n.chartist-light-blue .ct-series-a .ct-point, \n.chartist-light-blue .ct-series-a .ct-slice-donut {\n    stroke: rgba(3, 169, 244, 1);\n}\n.chartist-light-blue .ct-series-b .ct-bar, \n.chartist-light-blue .ct-series-b .ct-line, \n.chartist-light-blue .ct-series-b .ct-point, \n.chartist-light-blue .ct-series-b .ct-slice-donut {\n    stroke: rgba(3, 169, 244, 0.7);\n}\n.chartist-light-blue .ct-series-c .ct-bar, \n.chartist-light-blue .ct-series-c .ct-line, \n.chartist-light-blue .ct-series-c .ct-point, \n.chartist-light-blue .ct-series-c .ct-slice-donut {\n    stroke: rgba(3, 169, 244, 0.4);\n}\n.chartist-light-blue .ct-series-d .ct-bar, \n.chartist-light-blue .ct-series-d .ct-line, \n.chartist-light-blue .ct-series-d .ct-point, \n.chartist-light-blue .ct-series-d .ct-slice-donut {\n    stroke: rgba(3, 169, 244, 0.2);\n}\n.chartist-light-blue .ct-series-a .ct-area, \n.chartist-light-blue .ct-series-a .ct-slice-donut-solid, \n.chartist-light-blue .ct-series-a .ct-slice-pie {\n    fill: rgba(3, 169, 244, 1);\n}\n.chartist-light-blue .ct-series-b .ct-area, \n.chartist-light-blue .ct-series-b .ct-slice-donut-solid, \n.chartist-light-blue .ct-series-b .ct-slice-pie {\n    fill: rgba(3, 169, 244, 0.7);\n}\n.chartist-light-blue .ct-series-c .ct-area, \n.chartist-light-blue .ct-series-c .ct-slice-donut-solid, \n.chartist-light-blue .ct-series-c .ct-slice-pie {\n    fill: rgba(3, 169, 244, 0.4);\n}\n.chartist-light-blue .ct-series-d .ct-area, \n.chartist-light-blue .ct-series-d .ct-slice-donut-solid, \n.chartist-light-blue .ct-series-d .ct-slice-pie {\n    fill: rgba(3, 169, 244, 0.2);\n}\n\n/*Sets a color scheme for the chart.*/\n.chartist-cyan {}\n.chartist-cyan.text-black .ct-label {\n    fill: #000;\n    color: #000;\n}\n.chartist-cyan.text-white .ct-label {\n    fill:#fff;\n    color:#fff;\n}\n.chartist-cyan .ct-label {\n    fill: rgba(0, 188, 212,.4);\n    color: rgba(0, 188, 212,.4);\n}\n.chartist-cyan .ct-grid {\n    stroke: rgba(0, 188, 212,.2);\n}\n.chartist-cyan .ct-series-a .ct-bar, \n.chartist-cyan .ct-series-a .ct-line, \n.chartist-cyan .ct-series-a .ct-point, \n.chartist-cyan .ct-series-a .ct-slice-donut {\n    stroke: rgba(0, 188, 212, 1);\n}\n.chartist-cyan .ct-series-b .ct-bar, \n.chartist-cyan .ct-series-b .ct-line, \n.chartist-cyan .ct-series-b .ct-point, \n.chartist-cyan .ct-series-b .ct-slice-donut {\n    stroke: rgba(0, 188, 212, 0.7);\n}\n.chartist-cyan .ct-series-c .ct-bar, \n.chartist-cyan .ct-series-c .ct-line, \n.chartist-cyan .ct-series-c .ct-point, \n.chartist-cyan .ct-series-c .ct-slice-donut {\n    stroke: rgba(0, 188, 212, 0.4);\n}\n.chartist-cyan .ct-series-d .ct-bar, \n.chartist-cyan .ct-series-d .ct-line, \n.chartist-cyan .ct-series-d .ct-point, \n.chartist-cyan .ct-series-d .ct-slice-donut {\n    stroke: rgba(0, 188, 212, 0.2);\n}\n.chartist-cyan .ct-series-a .ct-area, \n.chartist-cyan .ct-series-a .ct-slice-donut-solid, \n.chartist-cyan .ct-series-a .ct-slice-pie {\n    fill: rgba(0, 188, 212, 1);\n}\n.chartist-cyan .ct-series-b .ct-area, \n.chartist-cyan .ct-series-b .ct-slice-donut-solid, \n.chartist-cyan .ct-series-b .ct-slice-pie {\n    fill: rgba(0, 188, 212, 0.7);\n}\n.chartist-cyan .ct-series-c .ct-area, \n.chartist-cyan .ct-series-c .ct-slice-donut-solid, \n.chartist-cyan .ct-series-c .ct-slice-pie {\n    fill: rgba(0, 188, 212, 0.4);\n}\n.chartist-cyan .ct-series-d .ct-area, \n.chartist-cyan .ct-series-d .ct-slice-donut-solid, \n.chartist-cyan .ct-series-d .ct-slice-pie {\n    fill: rgba(0, 188, 212, 0.2);\n}\n\n/*Sets a color scheme for the chart.*/\n.chartist-teal {}\n.chartist-teal.text-black .ct-label {\n    fill: #000;\n    color: #000;\n}\n.chartist-teal.text-white .ct-label {\n    fill:#fff;\n    color:#fff;\n}\n.chartist-teal .ct-label {\n    fill: rgba(0, 150, 136,.4);\n    color: rgba(0, 150, 136,.4);\n}\n.chartist-teal .ct-grid {\n    stroke: rgba(0, 150, 136,.2);\n}\n.chartist-teal .ct-series-a .ct-bar, \n.chartist-teal .ct-series-a .ct-line, \n.chartist-teal .ct-series-a .ct-point, \n.chartist-teal .ct-series-a .ct-slice-donut {\n    stroke: rgba(0, 150, 136, 1);\n}\n.chartist-teal .ct-series-b .ct-bar, \n.chartist-teal .ct-series-b .ct-line, \n.chartist-teal .ct-series-b .ct-point, \n.chartist-teal .ct-series-b .ct-slice-donut {\n    stroke: rgba(0, 150, 136, 0.7);\n}\n.chartist-teal .ct-series-c .ct-bar, \n.chartist-teal .ct-series-c .ct-line, \n.chartist-teal .ct-series-c .ct-point, \n.chartist-teal .ct-series-c .ct-slice-donut {\n    stroke: rgba(0, 150, 136, 0.4);\n}\n.chartist-teal .ct-series-d .ct-bar, \n.chartist-teal .ct-series-d .ct-line, \n.chartist-teal .ct-series-d .ct-point, \n.chartist-teal .ct-series-d .ct-slice-donut {\n    stroke: rgba(0, 150, 136, 0.2);\n}\n.chartist-teal .ct-series-a .ct-area, \n.chartist-teal .ct-series-a .ct-slice-donut-solid, \n.chartist-teal .ct-series-a .ct-slice-pie {\n    fill: rgba(0, 150, 136, 1);\n}\n.chartist-teal .ct-series-b .ct-area, \n.chartist-teal .ct-series-b .ct-slice-donut-solid, \n.chartist-teal .ct-series-b .ct-slice-pie {\n    fill: rgba(0, 150, 136, 0.7);\n}\n.chartist-teal .ct-series-c .ct-area, \n.chartist-teal .ct-series-c .ct-slice-donut-solid, \n.chartist-teal .ct-series-c .ct-slice-pie {\n    fill: rgba(0, 150, 136, 0.4);\n}\n.chartist-teal .ct-series-d .ct-area, \n.chartist-teal .ct-series-d .ct-slice-donut-solid, \n.chartist-teal .ct-series-d .ct-slice-pie {\n    fill: rgba(0, 150, 136, 0.2);\n}\n\n/*Sets a color scheme for the chart.*/\n.chartist-green {}\n.chartist-green.text-black .ct-label {\n    fill: #000;\n    color: #000;\n}\n.chartist-green.text-white .ct-label {\n    fill:#fff;\n    color:#fff;\n}\n.chartist-green .ct-label {\n    fill: rgba(76, 175, 79,.4);\n    color: rgba(76, 175, 79,.4);\n}\n.chartist-green .ct-grid {\n    stroke: rgba(76, 175, 79,.2);\n}\n.chartist-green .ct-series-a .ct-bar, \n.chartist-green .ct-series-a .ct-line, \n.chartist-green .ct-series-a .ct-point, \n.chartist-green .ct-series-a .ct-slice-donut {\n    stroke: rgba(76, 175, 79, 1);\n}\n.chartist-green .ct-series-b .ct-bar, \n.chartist-green .ct-series-b .ct-line, \n.chartist-green .ct-series-b .ct-point, \n.chartist-green .ct-series-b .ct-slice-donut {\n    stroke: rgba(76, 175, 79, 0.7);\n}\n.chartist-green .ct-series-c .ct-bar, \n.chartist-green .ct-series-c .ct-line, \n.chartist-green .ct-series-c .ct-point, \n.chartist-green .ct-series-c .ct-slice-donut {\n    stroke: rgba(76, 175, 79, 0.4);\n}\n.chartist-green .ct-series-d .ct-bar, \n.chartist-green .ct-series-d .ct-line, \n.chartist-green .ct-series-d .ct-point, \n.chartist-green .ct-series-d .ct-slice-donut {\n    stroke: rgba(76, 175, 79, 0.2);\n}\n.chartist-green .ct-series-a .ct-area, \n.chartist-green .ct-series-a .ct-slice-donut-solid, \n.chartist-green .ct-series-a .ct-slice-pie {\n    fill: rgba(76, 175, 79, 1);\n}\n.chartist-green .ct-series-b .ct-area, \n.chartist-green .ct-series-b .ct-slice-donut-solid, \n.chartist-green .ct-series-b .ct-slice-pie {\n    fill: rgba(76, 175, 79, 0.7);\n}\n.chartist-green .ct-series-c .ct-area, \n.chartist-green .ct-series-c .ct-slice-donut-solid, \n.chartist-green .ct-series-c .ct-slice-pie {\n    fill: rgba(76, 175, 79, 0.4);\n}\n.chartist-green .ct-series-d .ct-area, \n.chartist-green .ct-series-d .ct-slice-donut-solid, \n.chartist-green .ct-series-d .ct-slice-pie {\n    fill: rgba(76, 175, 79, 0.2);\n}\n\n/*Sets a color scheme for the chart.*/\n.chartist-lime {}\n.chartist-lime.text-black .ct-label {\n    fill: #000;\n    color: #000;\n}\n.chartist-lime.text-white .ct-label {\n    fill:#fff;\n    color:#fff;\n}\n.chartist-lime .ct-label {\n    fill: rgba(205, 220, 57,.4);\n    color: rgba(205, 220, 57,.4);\n}\n.chartist-lime .ct-grid {\n    stroke: rgba(205, 220, 57,.2);\n}\n.chartist-lime .ct-series-a .ct-bar, \n.chartist-lime .ct-series-a .ct-line, \n.chartist-lime .ct-series-a .ct-point, \n.chartist-lime .ct-series-a .ct-slice-donut {\n    stroke: rgba(205, 220, 57, 1);\n}\n.chartist-lime .ct-series-b .ct-bar, \n.chartist-lime .ct-series-b .ct-line, \n.chartist-lime .ct-series-b .ct-point, \n.chartist-lime .ct-series-b .ct-slice-donut {\n    stroke: rgba(205, 220, 57, 0.7);\n}\n.chartist-lime .ct-series-c .ct-bar, \n.chartist-lime .ct-series-c .ct-line, \n.chartist-lime .ct-series-c .ct-point, \n.chartist-lime .ct-series-c .ct-slice-donut {\n    stroke: rgba(205, 220, 57, 0.4);\n}\n.chartist-lime .ct-series-d .ct-bar, \n.chartist-lime .ct-series-d .ct-line, \n.chartist-lime .ct-series-d .ct-point, \n.chartist-lime .ct-series-d .ct-slice-donut {\n    stroke: rgba(205, 220, 57, 0.2);\n}\n.chartist-lime .ct-series-a .ct-area, \n.chartist-lime .ct-series-a .ct-slice-donut-solid, \n.chartist-lime .ct-series-a .ct-slice-pie {\n    fill: rgba(205, 220, 57, 1);\n}\n.chartist-lime .ct-series-b .ct-area, \n.chartist-lime .ct-series-b .ct-slice-donut-solid, \n.chartist-lime .ct-series-b .ct-slice-pie {\n    fill: rgba(205, 220, 57, 0.7);\n}\n.chartist-lime .ct-series-c .ct-area, \n.chartist-lime .ct-series-c .ct-slice-donut-solid, \n.chartist-lime .ct-series-c .ct-slice-pie {\n    fill: rgba(205, 220, 57, 0.4);\n}\n.chartist-lime .ct-series-d .ct-area, \n.chartist-lime .ct-series-d .ct-slice-donut-solid, \n.chartist-lime .ct-series-d .ct-slice-pie {\n    fill: rgba(205, 220, 57, 0.2);\n}\n\n/*Sets a color scheme for the chart.*/\n.chartist-yellow {}\n.chartist-yellow.text-black .ct-label {\n    fill: #000;\n    color: #000;\n}\n.chartist-yellow.text-white .ct-label {\n    fill:#fff;\n    color:#fff;\n}\n.chartist-yellow .ct-label {\n    fill: rgba(255, 235, 59,.4);\n    color: rgba(255, 235, 59,.4);\n}\n.chartist-yellow .ct-grid {\n    stroke: rgba(255, 235, 59,.2);\n}\n.chartist-yellow .ct-series-a .ct-bar, \n.chartist-yellow .ct-series-a .ct-line, \n.chartist-yellow .ct-series-a .ct-point, \n.chartist-yellow .ct-series-a .ct-slice-donut {\n    stroke: rgba(255, 235, 59, 1);\n}\n.chartist-yellow .ct-series-b .ct-bar, \n.chartist-yellow .ct-series-b .ct-line, \n.chartist-yellow .ct-series-b .ct-point, \n.chartist-yellow .ct-series-b .ct-slice-donut {\n    stroke: rgba(255, 235, 59, 0.7);\n}\n.chartist-yellow .ct-series-c .ct-bar, \n.chartist-yellow .ct-series-c .ct-line, \n.chartist-yellow .ct-series-c .ct-point, \n.chartist-yellow .ct-series-c .ct-slice-donut {\n    stroke: rgba(255, 235, 59, 0.4);\n}\n.chartist-yellow .ct-series-d .ct-bar, \n.chartist-yellow .ct-series-d .ct-line, \n.chartist-yellow .ct-series-d .ct-point, \n.chartist-yellow .ct-series-d .ct-slice-donut {\n    stroke: rgba(255, 235, 59, 0.2);\n}\n.chartist-yellow .ct-series-a .ct-area, \n.chartist-yellow .ct-series-a .ct-slice-donut-solid, \n.chartist-yellow .ct-series-a .ct-slice-pie {\n    fill: rgba(255, 235, 59, 1);\n}\n.chartist-yellow .ct-series-b .ct-area, \n.chartist-yellow .ct-series-b .ct-slice-donut-solid, \n.chartist-yellow .ct-series-b .ct-slice-pie {\n    fill: rgba(255, 235, 59, 0.7);\n}\n.chartist-yellow .ct-series-c .ct-area, \n.chartist-yellow .ct-series-c .ct-slice-donut-solid, \n.chartist-yellow .ct-series-c .ct-slice-pie {\n    fill: rgba(255, 235, 59, 0.4);\n}\n.chartist-yellow .ct-series-d .ct-area, \n.chartist-yellow .ct-series-d .ct-slice-donut-solid, \n.chartist-yellow .ct-series-d .ct-slice-pie {\n    fill: rgba(255, 235, 59, 0.2);\n}\n\n/*Sets a color scheme for the chart.*/\n.chartist-amber {}\n.chartist-amber.text-black .ct-label {\n    fill: #000;\n    color: #000;\n}\n.chartist-amber.text-white .ct-label {\n    fill:#fff;\n    color:#fff;\n}\n.chartist-amber .ct-label {\n    fill: rgba(255, 193, 7,.4);\n    color: rgba(255, 193, 7,.4);\n}\n.chartist-amber .ct-grid {\n    stroke: rgba(255, 193, 7,.2);\n}\n.chartist-amber .ct-series-a .ct-bar, \n.chartist-amber .ct-series-a .ct-line, \n.chartist-amber .ct-series-a .ct-point, \n.chartist-amber .ct-series-a .ct-slice-donut {\n    stroke: rgba(255, 193, 7, 1);\n}\n.chartist-amber .ct-series-b .ct-bar, \n.chartist-amber .ct-series-b .ct-line, \n.chartist-amber .ct-series-b .ct-point, \n.chartist-amber .ct-series-b .ct-slice-donut {\n    stroke: rgba(255, 193, 7, 0.7);\n}\n.chartist-amber .ct-series-c .ct-bar, \n.chartist-amber .ct-series-c .ct-line, \n.chartist-amber .ct-series-c .ct-point, \n.chartist-amber .ct-series-c .ct-slice-donut {\n    stroke: rgba(255, 193, 7, 0.4);\n}\n.chartist-amber .ct-series-d .ct-bar, \n.chartist-amber .ct-series-d .ct-line, \n.chartist-amber .ct-series-d .ct-point, \n.chartist-amber .ct-series-d .ct-slice-donut {\n    stroke: rgba(255, 193, 7, 0.2);\n}\n.chartist-amber .ct-series-a .ct-area, \n.chartist-amber .ct-series-a .ct-slice-donut-solid, \n.chartist-amber .ct-series-a .ct-slice-pie {\n    fill: rgba(255, 193, 7, 1);\n}\n.chartist-amber .ct-series-b .ct-area, \n.chartist-amber .ct-series-b .ct-slice-donut-solid, \n.chartist-amber .ct-series-b .ct-slice-pie {\n    fill: rgba(255, 193, 7, 0.7);\n}\n.chartist-amber .ct-series-c .ct-area, \n.chartist-amber .ct-series-c .ct-slice-donut-solid, \n.chartist-amber .ct-series-c .ct-slice-pie {\n    fill: rgba(255, 193, 7, 0.4);\n}\n.chartist-amber .ct-series-d .ct-area, \n.chartist-amber .ct-series-d .ct-slice-donut-solid, \n.chartist-amber .ct-series-d .ct-slice-pie {\n    fill: rgba(255, 193, 7, 0.2);\n}\n\n/*Sets a color scheme for the chart.*/\n.chartist-orange {}\n.chartist-orange.text-black .ct-label {\n    fill: #000;\n    color: #000;\n}\n.chartist-orange.text-white .ct-label {\n    fill:#fff;\n    color:#fff;\n}\n.chartist-orange .ct-label {\n    fill: rgba(255, 152, 0,.4);\n    color: rgba(255, 152, 0,.4);\n}\n.chartist-orange .ct-grid {\n    stroke: rgba(255, 152, 0,.2);\n}\n.chartist-orange .ct-series-a .ct-bar, \n.chartist-orange .ct-series-a .ct-line, \n.chartist-orange .ct-series-a .ct-point, \n.chartist-orange .ct-series-a .ct-slice-donut {\n    stroke: rgba(255, 152, 0, 1);\n}\n.chartist-orange .ct-series-b .ct-bar, \n.chartist-orange .ct-series-b .ct-line, \n.chartist-orange .ct-series-b .ct-point, \n.chartist-orange .ct-series-b .ct-slice-donut {\n    stroke: rgba(255, 152, 0, 0.7);\n}\n.chartist-orange .ct-series-c .ct-bar, \n.chartist-orange .ct-series-c .ct-line, \n.chartist-orange .ct-series-c .ct-point, \n.chartist-orange .ct-series-c .ct-slice-donut {\n    stroke: rgba(255, 152, 0, 0.4);\n}\n.chartist-orange .ct-series-d .ct-bar, \n.chartist-orange .ct-series-d .ct-line, \n.chartist-orange .ct-series-d .ct-point, \n.chartist-orange .ct-series-d .ct-slice-donut {\n    stroke: rgba(255, 152, 0, 0.2);\n}\n.chartist-orange .ct-series-a .ct-area, \n.chartist-orange .ct-series-a .ct-slice-donut-solid, \n.chartist-orange .ct-series-a .ct-slice-pie {\n    fill: rgba(255, 152, 0, 1);\n}\n.chartist-orange .ct-series-b .ct-area, \n.chartist-orange .ct-series-b .ct-slice-donut-solid, \n.chartist-orange .ct-series-b .ct-slice-pie {\n    fill: rgba(255, 152, 0, 0.7);\n}\n.chartist-orange .ct-series-c .ct-area, \n.chartist-orange .ct-series-c .ct-slice-donut-solid, \n.chartist-orange .ct-series-c .ct-slice-pie {\n    fill: rgba(255, 152, 0, 0.4);\n}\n.chartist-orange .ct-series-d .ct-area, \n.chartist-orange .ct-series-d .ct-slice-donut-solid, \n.chartist-orange .ct-series-d .ct-slice-pie {\n    fill: rgba(255, 152, 0, 0.2);\n}\n\n/*Sets a color scheme for the chart.*/\n.chartist-brown {}\n.chartist-brown.text-black .ct-label {\n    fill: #000;\n    color: #000;\n}\n.chartist-brown.text-white .ct-label {\n    fill:#fff;\n    color:#fff;\n}\n.chartist-brown .ct-label {\n    fill: rgba(121, 85, 72,.4);\n    color: rgba(121, 85, 72,.4);\n}\n.chartist-brown .ct-grid {\n    stroke: rgba(121, 85, 72,.2);\n}\n.chartist-brown .ct-series-a .ct-bar, \n.chartist-brown .ct-series-a .ct-line, \n.chartist-brown .ct-series-a .ct-point, \n.chartist-brown .ct-series-a .ct-slice-donut {\n    stroke: rgba(121, 85, 72, 1);\n}\n.chartist-brown .ct-series-b .ct-bar, \n.chartist-brown .ct-series-b .ct-line, \n.chartist-brown .ct-series-b .ct-point, \n.chartist-brown .ct-series-b .ct-slice-donut {\n    stroke: rgba(121, 85, 72, 0.7);\n}\n.chartist-brown .ct-series-c .ct-bar, \n.chartist-brown .ct-series-c .ct-line, \n.chartist-brown .ct-series-c .ct-point, \n.chartist-brown .ct-series-c .ct-slice-donut {\n    stroke: rgba(121, 85, 72, 0.4);\n}\n.chartist-brown .ct-series-d .ct-bar, \n.chartist-brown .ct-series-d .ct-line, \n.chartist-brown .ct-series-d .ct-point, \n.chartist-brown .ct-series-d .ct-slice-donut {\n    stroke: rgba(121, 85, 72, 0.2);\n}\n.chartist-brown .ct-series-a .ct-area, \n.chartist-brown .ct-series-a .ct-slice-donut-solid, \n.chartist-brown .ct-series-a .ct-slice-pie {\n    fill: rgba(121, 85, 72, 1);\n}\n.chartist-brown .ct-series-b .ct-area, \n.chartist-brown .ct-series-b .ct-slice-donut-solid, \n.chartist-brown .ct-series-b .ct-slice-pie {\n    fill: rgba(121, 85, 72, 0.7);\n}\n.chartist-brown .ct-series-c .ct-area, \n.chartist-brown .ct-series-c .ct-slice-donut-solid, \n.chartist-brown .ct-series-c .ct-slice-pie {\n    fill: rgba(121, 85, 72, 0.4);\n}\n.chartist-brown .ct-series-d .ct-area, \n.chartist-brown .ct-series-d .ct-slice-donut-solid, \n.chartist-brown .ct-series-d .ct-slice-pie {\n    fill: rgba(121, 85, 72, 0.2);\n}\n\n/*Sets a color scheme for the chart.*/\n.chartist-grey {}\n.chartist-grey.text-black .ct-label {\n    fill: #000;\n    color: #000;\n}\n.chartist-grey.text-white .ct-label {\n    fill:#fff;\n    color:#fff;\n}\n.chartist-grey .ct-label {\n    fill: rgba(158, 158, 158,.4);\n    color: rgba(158, 158, 158,.4);\n}\n.chartist-grey .ct-grid {\n    stroke: rgba(158, 158, 158,.2);\n}\n.chartist-grey .ct-series-a .ct-bar, \n.chartist-grey .ct-series-a .ct-line, \n.chartist-grey .ct-series-a .ct-point, \n.chartist-grey .ct-series-a .ct-slice-donut {\n    stroke: rgba(158, 158, 158, 1);\n}\n.chartist-grey .ct-series-b .ct-bar, \n.chartist-grey .ct-series-b .ct-line, \n.chartist-grey .ct-series-b .ct-point, \n.chartist-grey .ct-series-b .ct-slice-donut {\n    stroke: rgba(158, 158, 158, 0.7);\n}\n.chartist-grey .ct-series-c .ct-bar, \n.chartist-grey .ct-series-c .ct-line, \n.chartist-grey .ct-series-c .ct-point, \n.chartist-grey .ct-series-c .ct-slice-donut {\n    stroke: rgba(158, 158, 158, 0.4);\n}\n.chartist-grey .ct-series-d .ct-bar, \n.chartist-grey .ct-series-d .ct-line, \n.chartist-grey .ct-series-d .ct-point, \n.chartist-grey .ct-series-d .ct-slice-donut {\n    stroke: rgba(158, 158, 158, 0.2);\n}\n.chartist-grey .ct-series-a .ct-area, \n.chartist-grey .ct-series-a .ct-slice-donut-solid, \n.chartist-grey .ct-series-a .ct-slice-pie {\n    fill: rgba(158, 158, 158, 1);\n}\n.chartist-grey .ct-series-b .ct-area, \n.chartist-grey .ct-series-b .ct-slice-donut-solid, \n.chartist-grey .ct-series-b .ct-slice-pie {\n    fill: rgba(158, 158, 158, 0.7);\n}\n.chartist-grey .ct-series-c .ct-area, \n.chartist-grey .ct-series-c .ct-slice-donut-solid, \n.chartist-grey .ct-series-c .ct-slice-pie {\n    fill: rgba(158, 158, 158, 0.4);\n}\n.chartist-grey .ct-series-d .ct-area, \n.chartist-grey .ct-series-d .ct-slice-donut-solid, \n.chartist-grey .ct-series-d .ct-slice-pie {\n    fill: rgba(158, 158, 158, 0.2);\n}\n\n/*Sets a color scheme for the chart.*/\n.chartist-blue-grey {}\n.chartist-blue.text-white-grey .ct-label {\n    fill:#fff;\n    color:#fff;\n}\n.chartist-blue-grey .ct-label {\n    fill: rgba(96, 125, 139,.4);\n    color: rgba(96, 125, 139,.4);\n}\n.chartist-blue-grey .ct-grid {\n    stroke: rgba(96, 125, 139,.2);\n}\n.chartist-blue-grey .ct-series-a .ct-bar, \n.chartist-blue-grey .ct-series-a .ct-line, \n.chartist-blue-grey .ct-series-a .ct-point, \n.chartist-blue-grey .ct-series-a .ct-slice-donut {\n    stroke: rgba(96, 125, 139, 1);\n}\n.chartist-blue-grey .ct-series-b .ct-bar, \n.chartist-blue-grey .ct-series-b .ct-line, \n.chartist-blue-grey .ct-series-b .ct-point, \n.chartist-blue-grey .ct-series-b .ct-slice-donut {\n    stroke: rgba(96, 125, 139, 0.7);\n}\n.chartist-blue-grey .ct-series-c .ct-bar, \n.chartist-blue-grey .ct-series-c .ct-line, \n.chartist-blue-grey .ct-series-c .ct-point, \n.chartist-blue-grey .ct-series-c .ct-slice-donut {\n    stroke: rgba(96, 125, 139, 0.4);\n}\n.chartist-blue-grey .ct-series-d .ct-bar, \n.chartist-blue-grey .ct-series-d .ct-line, \n.chartist-blue-grey .ct-series-d .ct-point, \n.chartist-blue-grey .ct-series-d .ct-slice-donut {\n    stroke: rgba(96, 125, 139, 0.2);\n}\n.chartist-blue-grey .ct-series-a .ct-area, \n.chartist-blue-grey .ct-series-a .ct-slice-donut-solid, \n.chartist-blue-grey .ct-series-a .ct-slice-pie {\n    fill: rgba(96, 125, 139, 1);\n}\n.chartist-blue-grey .ct-series-b .ct-area, \n.chartist-blue-grey .ct-series-b .ct-slice-donut-solid, \n.chartist-blue-grey .ct-series-b .ct-slice-pie {\n    fill: rgba(96, 125, 139, 0.7);\n}\n.chartist-blue-grey .ct-series-c .ct-area, \n.chartist-blue-grey .ct-series-c .ct-slice-donut-solid, \n.chartist-blue-grey .ct-series-c .ct-slice-pie {\n    fill: rgba(96, 125, 139, 0.4);\n}\n.chartist-blue-grey .ct-series-d .ct-area, \n.chartist-blue-grey .ct-series-d .ct-slice-donut-solid, \n.chartist-blue-grey .ct-series-d .ct-slice-pie {\n    fill: rgba(96, 125, 139, 0.2);\n}\n\n/*Sets a color scheme for the chart.*/\n.chartist-black {}\n.chartist-black.text-black .ct-label {\n    fill: #000;\n    color: #000;\n}\n.chartist-black.text-white .ct-label {\n    fill:#fff;\n    color:#fff;\n}\n.chartist-black .ct-label {\n    fill: rgba(0, 0, 0,.4);\n    color: rgba(0, 0, 0,.4);\n}\n.chartist-black .ct-grid {\n    stroke: rgba(0, 0, 0,.2);\n}\n.chartist-black .ct-series-a .ct-bar, \n.chartist-black .ct-series-a .ct-line, \n.chartist-black .ct-series-a .ct-point, \n.chartist-black .ct-series-a .ct-slice-donut {\n    stroke: rgba(0, 0, 0, 1);\n}\n.chartist-black .ct-series-b .ct-bar, \n.chartist-black .ct-series-b .ct-line, \n.chartist-black .ct-series-b .ct-point, \n.chartist-black .ct-series-b .ct-slice-donut {\n    stroke: rgba(0, 0, 0, 0.7);\n}\n.chartist-black .ct-series-c .ct-bar, \n.chartist-black .ct-series-c .ct-line, \n.chartist-black .ct-series-c .ct-point, \n.chartist-black .ct-series-c .ct-slice-donut {\n    stroke: rgba(0, 0, 0, 0.4);\n}\n.chartist-black .ct-series-d .ct-bar, \n.chartist-black .ct-series-d .ct-line, \n.chartist-black .ct-series-d .ct-point, \n.chartist-black .ct-series-d .ct-slice-donut {\n    stroke: rgba(0, 0, 0, 0.2);\n}\n.chartist-black .ct-series-a .ct-area, \n.chartist-black .ct-series-a .ct-slice-donut-solid, \n.chartist-black .ct-series-a .ct-slice-pie {\n    fill: rgba(0, 0, 0, 1);\n}\n.chartist-black .ct-series-b .ct-area, \n.chartist-black .ct-series-b .ct-slice-donut-solid, \n.chartist-black .ct-series-b .ct-slice-pie {\n    fill: rgba(0, 0, 0, 0.7);\n}\n.chartist-black .ct-series-c .ct-area, \n.chartist-black .ct-series-c .ct-slice-donut-solid, \n.chartist-black .ct-series-c .ct-slice-pie {\n    fill: rgba(0, 0, 0, 0.4);\n}\n.chartist-black .ct-series-d .ct-area, \n.chartist-black .ct-series-d .ct-slice-donut-solid, \n.chartist-black .ct-series-d .ct-slice-pie {\n    fill: rgba(0, 0, 0, 0.2);\n}"
  },
  {
    "path": "chartist-plugin-tooltip/component.json",
    "content": "{\n  \"name\":\"chartist-plugin-tooltip\",\n  \"author\": \"tmmdata\",\n  \"dependencies\": [\n    \"chartist\"\n  ]\n}\n"
  },
  {
    "path": "chartist-plugin-tooltip/script.js",
    "content": "/* chartist-plugin-tooltip 0.0.18\n * Copyright © 2017 Markus Padourek\n * Free to use under the WTFPL license.\n * http://www.wtfpl.net/\n */\n\n!function(a,b){\"function\"==typeof define&&define.amd?define([\"chartist\"],function(c){return a.returnExportsGlobal=b(c)}):\"object\"==typeof exports?module.exports=b(require(\"chartist\")):a[\"Chartist.plugins.tooltip\"]=b(Chartist)}(this,function(a){return function(a,b,c){\"use strict\";function d(a){f(a,\"tooltip-show\")||(a.className=a.className+\" tooltip-show\")}function e(a){var b=new RegExp(\"tooltip-show\\\\s*\",\"gi\");a.className=a.className.replace(b,\"\").trim()}function f(a,b){return(\" \"+a.getAttribute(\"class\")+\" \").indexOf(\" \"+b+\" \")>-1}function g(a,b){do{a=a.nextSibling}while(a&&!f(a,b));return a}function h(a){return a.innerText||a.textContent}var i={currency:void 0,currencyFormatCallback:void 0,tooltipOffset:{x:0,y:-20},anchorToPoint:!1,appendToBody:!1,class:void 0,pointClass:\"ct-point\"};c.plugins=c.plugins||{},c.plugins.tooltip=function(j){return j=c.extend({},i,j),function(i){function k(a,b,c){n.addEventListener(a,function(a){b&&!f(a.target,b)||c(a)})}function l(b){p=p||o.offsetHeight,q=q||o.offsetWidth;var c,d,e=-q/2+j.tooltipOffset.x,f=-p+j.tooltipOffset.y;if(j.appendToBody)o.style.top=b.pageY+f+\"px\",o.style.left=b.pageX+e+\"px\";else{var g=n.getBoundingClientRect(),h=b.pageX-g.left-a.pageXOffset,i=b.pageY-g.top-a.pageYOffset;!0===j.anchorToPoint&&b.target.x2&&b.target.y2&&(c=parseInt(b.target.x2.baseVal.value),d=parseInt(b.target.y2.baseVal.value)),o.style.top=(d||i)+f+\"px\",o.style.left=(c||h)+e+\"px\"}}var m=j.pointClass;i.constructor.name==c.Bar.prototype.constructor.name?m=\"ct-bar\":i.constructor.name==c.Pie.prototype.constructor.name&&(m=i.options.donut?\"ct-slice-donut\":\"ct-slice-pie\");var n=i.container,o=n.querySelector(\".chartist-tooltip\");o||(o=b.createElement(\"div\"),o.className=j.class?\"chartist-tooltip \"+j.class:\"chartist-tooltip\",j.appendToBody?b.body.appendChild(o):n.appendChild(o));var p=o.offsetHeight,q=o.offsetWidth;e(o),k(\"mouseover\",m,function(a){var e=a.target,f=\"\",k=i instanceof c.Pie?e:e.parentNode,m=k?e.parentNode.getAttribute(\"ct:meta\")||e.parentNode.getAttribute(\"ct:series-name\"):\"\",n=e.getAttribute(\"ct:meta\")||m||\"\",r=!!n,s=e.getAttribute(\"ct:value\");if(j.transformTooltipTextFnc&&\"function\"==typeof j.transformTooltipTextFnc&&(s=j.transformTooltipTextFnc(s)),j.tooltipFnc&&\"function\"==typeof j.tooltipFnc)f=j.tooltipFnc(n,s);else{if(j.metaIsHTML){var t=b.createElement(\"textarea\");t.innerHTML=n,n=t.value}if(n='<span class=\"chartist-tooltip-meta\">'+n+\"</span>\",r)f+=n+\"<br>\";else if(i instanceof c.Pie){var u=g(e,\"ct-label\");u&&(f+=h(u)+\"<br>\")}s&&(j.currency&&(s=void 0!=j.currencyFormatCallback?j.currencyFormatCallback(s,j):j.currency+s.replace(/(\\d)(?=(\\d{3})+(?:\\.\\d+)?$)/g,\"$1,\")),s='<span class=\"chartist-tooltip-value\">'+s+\"</span>\",f+=s)}f&&(o.innerHTML=f,l(a),d(o),p=o.offsetHeight,q=o.offsetWidth)}),k(\"mouseout\",m,function(){e(o)}),k(\"mousemove\",null,function(a){!1===j.anchorToPoint&&l(a)})}}}(window,document,a),a.plugins.tooltip});\n//# sourceMappingURL=chartist-plugin-tooltip.min.js.map"
  },
  {
    "path": "chartist-plugin-tooltip/style.css",
    "content": ".chartist-tooltip {\n    position: absolute;\n    display: inline-block;\n    opacity: 0;\n    min-width: 5em;\n    padding: .5em;\n    background: #F4C63D;\n    color: #453D3F;\n    font-family: Oxygen,Helvetica,Arial,sans-serif;\n    font-weight: 700;\n    text-align: center;\n    pointer-events: none;\n    z-index: 1;\n    -webkit-transition: opacity .2s linear;\n    -moz-transition: opacity .2s linear;\n    -o-transition: opacity .2s linear;\n    transition: opacity .2s linear; }\n    .chartist-tooltip:before {\n      content: \"\";\n      position: absolute;\n      top: 100%;\n      left: 50%;\n      width: 0;\n      height: 0;\n      margin-left: -15px;\n      border: 15px solid transparent;\n      border-top-color: #F4C63D; }\n    .chartist-tooltip.tooltip-show {\n      opacity: 1; }\n  \n  .ct-area, .ct-line {\n    pointer-events: none; }\n  \n  /*# sourceMappingURL=chartist-plugin-tooltip.css.map */"
  },
  {
    "path": "chartjs/component.json",
    "content": "{\n  \"name\":\"chartjs\",\n  \"author\": \"nnnick\",\n  \"dependencies\": []\n}\n"
  },
  {
    "path": "chartjs/index.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <title></title>\n  <link href=\"https://fonts.googleapis.com/css?family=Dosis|Raleway:400,700|Roboto:300,400,900,\" rel=\"stylesheet\">\n  <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n  <link rel=\"stylesheet\" href=\"../base/reset.css\">\n  <link rel=\"stylesheet\" href=\"../base/mobileui.css\">\n  <link rel=\"stylesheet\" href=\"../base/colors.css\">\n  <link rel=\"stylesheet\" href=\"../base/icons.css\">\n  <link rel=\"stylesheet\" href=\"../header/style.css\">\n  <link rel=\"stylesheet\" href=\"../button/style.css\">\n  <link rel=\"stylesheet\" href=\"../list/style.css\">\n  <link rel=\"stylesheet\" href=\"../cover/style.css\">\n  <link rel=\"stylesheet\" href=\"../grid/style.css\">\n  <link rel=\"stylesheet\" href=\"style.css\">\n  <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n  <style>\n    .content-lab {\n      margin-left: 50px\n    }\n  </style>\n  <script type=\"text/javascript\" src=\"script.js\"></script>\n</head>\n<body class=\"content-lab\">\n  <!-- BEGIN -->\n  <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">Chart.js</h2>\n  <p>\n    Simple HTML5 Charts using the canvas element <a href=\"chartjs.org\" target=\"_blank\">chartjs.org</a>.\n  </p>\n  <p>\n\n  </p>\n  <p>\n    To use this component you need install with the command:\n  </p>\n  <pre>mobileui install chartjs</pre>\n  <p>\n    MobileUI use this lib for create another components!\n  </p>\n  <!-- DONE -->\n  <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n  <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n  <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n  <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n  <script type=\"text/javascript\" src=\"../progressbarjs/script.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "chartjs/script.js",
    "content": "/*!\n * Chart.js\n * http://chartjs.org/\n * Version: 2.6.0\n *\n * Copyright 2017 Nick Downie\n * Released under the MIT license\n * https://github.com/chartjs/Chart.js/blob/master/LICENSE.md\n */\n!function(t){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else{var e;e=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this,e.Chart=t()}}(function(){return function t(e,n,i){function a(r,l){if(!n[r]){if(!e[r]){var s=\"function\"==typeof require&&require;if(!l&&s)return s(r,!0);if(o)return o(r,!0);var u=new Error(\"Cannot find module '\"+r+\"'\");throw u.code=\"MODULE_NOT_FOUND\",u}var d=n[r]={exports:{}};e[r][0].call(d.exports,function(t){var n=e[r][1][t];return a(n?n:t)},d,d.exports,t,e,n,i)}return n[r].exports}for(var o=\"function\"==typeof require&&require,r=0;r<i.length;r++)a(i[r]);return a}({1:[function(t,e,n){},{}],2:[function(t,e,n){function i(t){if(t){var e=/^#([a-fA-F0-9]{3})$/,n=/^#([a-fA-F0-9]{6})$/,i=/^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/,a=/^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/,o=/(\\w+)/,r=[0,0,0],l=1,s=t.match(e);if(s){s=s[1];for(var u=0;u<r.length;u++)r[u]=parseInt(s[u]+s[u],16)}else if(s=t.match(n)){s=s[1];for(var u=0;u<r.length;u++)r[u]=parseInt(s.slice(2*u,2*u+2),16)}else if(s=t.match(i)){for(var u=0;u<r.length;u++)r[u]=parseInt(s[u+1]);l=parseFloat(s[4])}else if(s=t.match(a)){for(var u=0;u<r.length;u++)r[u]=Math.round(2.55*parseFloat(s[u+1]));l=parseFloat(s[4])}else if(s=t.match(o)){if(\"transparent\"==s[1])return[0,0,0,0];if(r=y[s[1]],!r)return}for(var u=0;u<r.length;u++)r[u]=b(r[u],0,255);return l=l||0==l?b(l,0,1):1,r[3]=l,r}}function a(t){if(t){var e=/^hsla?\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/,n=t.match(e);if(n){var i=parseFloat(n[4]),a=b(parseInt(n[1]),0,360),o=b(parseFloat(n[2]),0,100),r=b(parseFloat(n[3]),0,100),l=b(isNaN(i)?1:i,0,1);return[a,o,r,l]}}}function o(t){if(t){var e=/^hwb\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/,n=t.match(e);if(n){var i=parseFloat(n[4]),a=b(parseInt(n[1]),0,360),o=b(parseFloat(n[2]),0,100),r=b(parseFloat(n[3]),0,100),l=b(isNaN(i)?1:i,0,1);return[a,o,r,l]}}}function r(t){var e=i(t);return e&&e.slice(0,3)}function l(t){var e=a(t);return e&&e.slice(0,3)}function s(t){var e=i(t);return e?e[3]:(e=a(t))?e[3]:(e=o(t))?e[3]:void 0}function u(t){return\"#\"+x(t[0])+x(t[1])+x(t[2])}function d(t,e){return e<1||t[3]&&t[3]<1?c(t,e):\"rgb(\"+t[0]+\", \"+t[1]+\", \"+t[2]+\")\"}function c(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),\"rgba(\"+t[0]+\", \"+t[1]+\", \"+t[2]+\", \"+e+\")\"}function h(t,e){if(e<1||t[3]&&t[3]<1)return f(t,e);var n=Math.round(t[0]/255*100),i=Math.round(t[1]/255*100),a=Math.round(t[2]/255*100);return\"rgb(\"+n+\"%, \"+i+\"%, \"+a+\"%)\"}function f(t,e){var n=Math.round(t[0]/255*100),i=Math.round(t[1]/255*100),a=Math.round(t[2]/255*100);return\"rgba(\"+n+\"%, \"+i+\"%, \"+a+\"%, \"+(e||t[3]||1)+\")\"}function g(t,e){return e<1||t[3]&&t[3]<1?p(t,e):\"hsl(\"+t[0]+\", \"+t[1]+\"%, \"+t[2]+\"%)\"}function p(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),\"hsla(\"+t[0]+\", \"+t[1]+\"%, \"+t[2]+\"%, \"+e+\")\"}function m(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),\"hwb(\"+t[0]+\", \"+t[1]+\"%, \"+t[2]+\"%\"+(void 0!==e&&1!==e?\", \"+e:\"\")+\")\"}function v(t){return k[t.slice(0,3)]}function b(t,e,n){return Math.min(Math.max(e,t),n)}function x(t){var e=t.toString(16).toUpperCase();return e.length<2?\"0\"+e:e}var y=t(6);e.exports={getRgba:i,getHsla:a,getRgb:r,getHsl:l,getHwb:o,getAlpha:s,hexString:u,rgbString:d,rgbaString:c,percentString:h,percentaString:f,hslString:g,hslaString:p,hwbString:m,keyword:v};var k={};for(var w in y)k[y[w]]=w},{6:6}],3:[function(t,e,n){var i=t(5),a=t(2),o=function(t){if(t instanceof o)return t;if(!(this instanceof o))return new o(t);this.valid=!1,this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1};var e;\"string\"==typeof t?(e=a.getRgba(t),e?this.setValues(\"rgb\",e):(e=a.getHsla(t))?this.setValues(\"hsl\",e):(e=a.getHwb(t))&&this.setValues(\"hwb\",e)):\"object\"==typeof t&&(e=t,void 0!==e.r||void 0!==e.red?this.setValues(\"rgb\",e):void 0!==e.l||void 0!==e.lightness?this.setValues(\"hsl\",e):void 0!==e.v||void 0!==e.value?this.setValues(\"hsv\",e):void 0!==e.w||void 0!==e.whiteness?this.setValues(\"hwb\",e):void 0===e.c&&void 0===e.cyan||this.setValues(\"cmyk\",e))};o.prototype={isValid:function(){return this.valid},rgb:function(){return this.setSpace(\"rgb\",arguments)},hsl:function(){return this.setSpace(\"hsl\",arguments)},hsv:function(){return this.setSpace(\"hsv\",arguments)},hwb:function(){return this.setSpace(\"hwb\",arguments)},cmyk:function(){return this.setSpace(\"cmyk\",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},hwbArray:function(){var t=this.values;return 1!==t.alpha?t.hwb.concat([t.alpha]):t.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var t=this.values;return t.rgb.concat([t.alpha])},hslaArray:function(){var t=this.values;return t.hsl.concat([t.alpha])},alpha:function(t){return void 0===t?this.values.alpha:(this.setValues(\"alpha\",t),this)},red:function(t){return this.setChannel(\"rgb\",0,t)},green:function(t){return this.setChannel(\"rgb\",1,t)},blue:function(t){return this.setChannel(\"rgb\",2,t)},hue:function(t){return t&&(t%=360,t=t<0?360+t:t),this.setChannel(\"hsl\",0,t)},saturation:function(t){return this.setChannel(\"hsl\",1,t)},lightness:function(t){return this.setChannel(\"hsl\",2,t)},saturationv:function(t){return this.setChannel(\"hsv\",1,t)},whiteness:function(t){return this.setChannel(\"hwb\",1,t)},blackness:function(t){return this.setChannel(\"hwb\",2,t)},value:function(t){return this.setChannel(\"hsv\",2,t)},cyan:function(t){return this.setChannel(\"cmyk\",0,t)},magenta:function(t){return this.setChannel(\"cmyk\",1,t)},yellow:function(t){return this.setChannel(\"cmyk\",2,t)},black:function(t){return this.setChannel(\"cmyk\",3,t)},hexString:function(){return a.hexString(this.values.rgb)},rgbString:function(){return a.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return a.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return a.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return a.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return a.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return a.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return a.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var t=this.values.rgb;return t[0]<<16|t[1]<<8|t[2]},luminosity:function(){for(var t=this.values.rgb,e=[],n=0;n<t.length;n++){var i=t[n]/255;e[n]=i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4)}return.2126*e[0]+.7152*e[1]+.0722*e[2]},contrast:function(t){var e=this.luminosity(),n=t.luminosity();return e>n?(e+.05)/(n+.05):(n+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?\"AAA\":e>=4.5?\"AA\":\"\"},dark:function(){var t=this.values.rgb,e=(299*t[0]+587*t[1]+114*t[2])/1e3;return e<128},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;e<3;e++)t[e]=255-this.values.rgb[e];return this.setValues(\"rgb\",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues(\"hsl\",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues(\"hsl\",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues(\"hsl\",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues(\"hsl\",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues(\"hwb\",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues(\"hwb\",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues(\"rgb\",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues(\"alpha\",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues(\"alpha\",e+e*t),this},rotate:function(t){var e=this.values.hsl,n=(e[0]+t)%360;return e[0]=n<0?360+n:n,this.setValues(\"hsl\",e),this},mix:function(t,e){var n=this,i=t,a=void 0===e?.5:e,o=2*a-1,r=n.alpha()-i.alpha(),l=((o*r===-1?o:(o+r)/(1+o*r))+1)/2,s=1-l;return this.rgb(l*n.red()+s*i.red(),l*n.green()+s*i.green(),l*n.blue()+s*i.blue()).alpha(n.alpha()*a+i.alpha()*(1-a))},toJSON:function(){return this.rgb()},clone:function(){var t,e,n=new o,i=this.values,a=n.values;for(var r in i)i.hasOwnProperty(r)&&(t=i[r],e={}.toString.call(t),\"[object Array]\"===e?a[r]=t.slice(0):\"[object Number]\"===e?a[r]=t:console.error(\"unexpected color value:\",t));return n}},o.prototype.spaces={rgb:[\"red\",\"green\",\"blue\"],hsl:[\"hue\",\"saturation\",\"lightness\"],hsv:[\"hue\",\"saturation\",\"value\"],hwb:[\"hue\",\"whiteness\",\"blackness\"],cmyk:[\"cyan\",\"magenta\",\"yellow\",\"black\"]},o.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},o.prototype.getValues=function(t){for(var e=this.values,n={},i=0;i<t.length;i++)n[t.charAt(i)]=e[t][i];return 1!==e.alpha&&(n.a=e.alpha),n},o.prototype.setValues=function(t,e){var n,a=this.values,o=this.spaces,r=this.maxes,l=1;if(this.valid=!0,\"alpha\"===t)l=e;else if(e.length)a[t]=e.slice(0,t.length),l=e[t.length];else if(void 0!==e[t.charAt(0)]){for(n=0;n<t.length;n++)a[t][n]=e[t.charAt(n)];l=e.a}else if(void 0!==e[o[t][0]]){var s=o[t];for(n=0;n<t.length;n++)a[t][n]=e[s[n]];l=e.alpha}if(a.alpha=Math.max(0,Math.min(1,void 0===l?a.alpha:l)),\"alpha\"===t)return!1;var u;for(n=0;n<t.length;n++)u=Math.max(0,Math.min(r[t][n],a[t][n])),a[t][n]=Math.round(u);for(var d in o)d!==t&&(a[d]=i[t][d](a[t]));return!0},o.prototype.setSpace=function(t,e){var n=e[0];return void 0===n?this.getValues(t):(\"number\"==typeof n&&(n=Array.prototype.slice.call(e)),this.setValues(t,n),this)},o.prototype.setChannel=function(t,e,n){var i=this.values[t];return void 0===n?i[e]:n===i[e]?this:(i[e]=n,this.setValues(t,i),this)},\"undefined\"!=typeof window&&(window.Color=o),e.exports=o},{2:2,5:5}],4:[function(t,e,n){function i(t){var e,n,i,a=t[0]/255,o=t[1]/255,r=t[2]/255,l=Math.min(a,o,r),s=Math.max(a,o,r),u=s-l;return s==l?e=0:a==s?e=(o-r)/u:o==s?e=2+(r-a)/u:r==s&&(e=4+(a-o)/u),e=Math.min(60*e,360),e<0&&(e+=360),i=(l+s)/2,n=s==l?0:i<=.5?u/(s+l):u/(2-s-l),[e,100*n,100*i]}function a(t){var e,n,i,a=t[0],o=t[1],r=t[2],l=Math.min(a,o,r),s=Math.max(a,o,r),u=s-l;return n=0==s?0:u/s*1e3/10,s==l?e=0:a==s?e=(o-r)/u:o==s?e=2+(r-a)/u:r==s&&(e=4+(a-o)/u),e=Math.min(60*e,360),e<0&&(e+=360),i=s/255*1e3/10,[e,n,i]}function o(t){var e=t[0],n=t[1],a=t[2],o=i(t)[0],r=1/255*Math.min(e,Math.min(n,a)),a=1-1/255*Math.max(e,Math.max(n,a));return[o,100*r,100*a]}function l(t){var e,n,i,a,o=t[0]/255,r=t[1]/255,l=t[2]/255;return a=Math.min(1-o,1-r,1-l),e=(1-o-a)/(1-a)||0,n=(1-r-a)/(1-a)||0,i=(1-l-a)/(1-a)||0,[100*e,100*n,100*i,100*a]}function s(t){return Z[JSON.stringify(t)]}function u(t){var e=t[0]/255,n=t[1]/255,i=t[2]/255;e=e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92,n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92,i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92;var a=.4124*e+.3576*n+.1805*i,o=.2126*e+.7152*n+.0722*i,r=.0193*e+.1192*n+.9505*i;return[100*a,100*o,100*r]}function d(t){var e,n,i,a=u(t),o=a[0],r=a[1],l=a[2];return o/=95.047,r/=100,l/=108.883,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,l=l>.008856?Math.pow(l,1/3):7.787*l+16/116,e=116*r-16,n=500*(o-r),i=200*(r-l),[e,n,i]}function c(t){return B(d(t))}function h(t){var e,n,i,a,o,r=t[0]/360,l=t[1]/100,s=t[2]/100;if(0==l)return o=255*s,[o,o,o];n=s<.5?s*(1+l):s+l-s*l,e=2*s-n,a=[0,0,0];for(var u=0;u<3;u++)i=r+1/3*-(u-1),i<0&&i++,i>1&&i--,o=6*i<1?e+6*(n-e)*i:2*i<1?n:3*i<2?e+(n-e)*(2/3-i)*6:e,a[u]=255*o;return a}function f(t){var e,n,i=t[0],a=t[1]/100,o=t[2]/100;return 0===o?[0,0,0]:(o*=2,a*=o<=1?o:2-o,n=(o+a)/2,e=2*a/(o+a),[i,100*e,100*n])}function p(t){return o(h(t))}function m(t){return l(h(t))}function v(t){return s(h(t))}function x(t){var e=t[0]/60,n=t[1]/100,i=t[2]/100,a=Math.floor(e)%6,o=e-Math.floor(e),r=255*i*(1-n),l=255*i*(1-n*o),s=255*i*(1-n*(1-o)),i=255*i;switch(a){case 0:return[i,s,r];case 1:return[l,i,r];case 2:return[r,i,s];case 3:return[r,l,i];case 4:return[s,r,i];case 5:return[i,r,l]}}function y(t){var e,n,i=t[0],a=t[1]/100,o=t[2]/100;return n=(2-a)*o,e=a*o,e/=n<=1?n:2-n,e=e||0,n/=2,[i,100*e,100*n]}function k(t){return o(x(t))}function w(t){return l(x(t))}function M(t){return s(x(t))}function S(t){var e,n,i,a,o=t[0]/360,l=t[1]/100,s=t[2]/100,u=l+s;switch(u>1&&(l/=u,s/=u),e=Math.floor(6*o),n=1-s,i=6*o-e,0!=(1&e)&&(i=1-i),a=l+i*(n-l),e){default:case 6:case 0:r=n,g=a,b=l;break;case 1:r=a,g=n,b=l;break;case 2:r=l,g=n,b=a;break;case 3:r=l,g=a,b=n;break;case 4:r=a,g=l,b=n;break;case 5:r=n,g=l,b=a}return[255*r,255*g,255*b]}function C(t){return i(S(t))}function D(t){return a(S(t))}function I(t){return l(S(t))}function A(t){return s(S(t))}function P(t){var e,n,i,a=t[0]/100,o=t[1]/100,r=t[2]/100,l=t[3]/100;return e=1-Math.min(1,a*(1-l)+l),n=1-Math.min(1,o*(1-l)+l),i=1-Math.min(1,r*(1-l)+l),[255*e,255*n,255*i]}function _(t){return i(P(t))}function T(t){return a(P(t))}function F(t){return o(P(t))}function R(t){return s(P(t))}function L(t){var e,n,i,a=t[0]/100,o=t[1]/100,r=t[2]/100;return e=3.2406*a+o*-1.5372+r*-.4986,n=a*-.9689+1.8758*o+.0415*r,i=.0557*a+o*-.204+1.057*r,e=e>.0031308?1.055*Math.pow(e,1/2.4)-.055:e*=12.92,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:n*=12.92,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:i*=12.92,e=Math.min(Math.max(0,e),1),n=Math.min(Math.max(0,n),1),i=Math.min(Math.max(0,i),1),[255*e,255*n,255*i]}function V(t){var e,n,i,a=t[0],o=t[1],r=t[2];return a/=95.047,o/=100,r/=108.883,a=a>.008856?Math.pow(a,1/3):7.787*a+16/116,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,e=116*o-16,n=500*(a-o),i=200*(o-r),[e,n,i]}function O(t){return B(V(t))}function z(t){var e,n,i,a,o=t[0],r=t[1],l=t[2];return o<=8?(n=100*o/903.3,a=7.787*(n/100)+16/116):(n=100*Math.pow((o+16)/116,3),a=Math.pow(n/100,1/3)),e=e/95.047<=.008856?e=95.047*(r/500+a-16/116)/7.787:95.047*Math.pow(r/500+a,3),i=i/108.883<=.008859?i=108.883*(a-l/200-16/116)/7.787:108.883*Math.pow(a-l/200,3),[e,n,i]}function B(t){var e,n,i,a=t[0],o=t[1],r=t[2];return e=Math.atan2(r,o),n=360*e/2/Math.PI,n<0&&(n+=360),i=Math.sqrt(o*o+r*r),[a,i,n]}function W(t){return L(z(t))}function N(t){var e,n,i,a=t[0],o=t[1],r=t[2];return i=r/360*2*Math.PI,e=o*Math.cos(i),n=o*Math.sin(i),[a,e,n]}function E(t){return z(N(t))}function H(t){return W(N(t))}function q(t){return J[t]}function j(t){return i(q(t))}function Y(t){return a(q(t))}function U(t){return o(q(t))}function X(t){return l(q(t))}function K(t){return d(q(t))}function G(t){return u(q(t))}e.exports={rgb2hsl:i,rgb2hsv:a,rgb2hwb:o,rgb2cmyk:l,rgb2keyword:s,rgb2xyz:u,rgb2lab:d,rgb2lch:c,hsl2rgb:h,hsl2hsv:f,hsl2hwb:p,hsl2cmyk:m,hsl2keyword:v,hsv2rgb:x,hsv2hsl:y,hsv2hwb:k,hsv2cmyk:w,hsv2keyword:M,hwb2rgb:S,hwb2hsl:C,hwb2hsv:D,hwb2cmyk:I,hwb2keyword:A,cmyk2rgb:P,cmyk2hsl:_,cmyk2hsv:T,cmyk2hwb:F,cmyk2keyword:R,keyword2rgb:q,keyword2hsl:j,keyword2hsv:Y,keyword2hwb:U,keyword2cmyk:X,keyword2lab:K,keyword2xyz:G,xyz2rgb:L,xyz2lab:V,xyz2lch:O,lab2xyz:z,lab2rgb:W,lab2lch:B,lch2lab:N,lch2xyz:E,lch2rgb:H};var J={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},Z={};for(var Q in J)Z[JSON.stringify(J[Q])]=Q},{}],5:[function(t,e,n){var i=t(4),a=function(){return new u};for(var o in i){a[o+\"Raw\"]=function(t){return function(e){return\"number\"==typeof e&&(e=Array.prototype.slice.call(arguments)),i[t](e)}}(o);var r=/(\\w+)2(\\w+)/.exec(o),l=r[1],s=r[2];a[l]=a[l]||{},a[l][s]=a[o]=function(t){return function(e){\"number\"==typeof e&&(e=Array.prototype.slice.call(arguments));var n=i[t](e);if(\"string\"==typeof n||void 0===n)return n;for(var a=0;a<n.length;a++)n[a]=Math.round(n[a]);return n}}(o)}var u=function(){this.convs={}};u.prototype.routeSpace=function(t,e){var n=e[0];return void 0===n?this.getValues(t):(\"number\"==typeof n&&(n=Array.prototype.slice.call(e)),this.setValues(t,n))},u.prototype.setValues=function(t,e){return this.space=t,this.convs={},this.convs[t]=e,this},u.prototype.getValues=function(t){var e=this.convs[t];if(!e){var n=this.space,i=this.convs[n];e=a[n][t](i),this.convs[t]=e}return e},[\"rgb\",\"hsl\",\"hsv\",\"cmyk\",\"keyword\"].forEach(function(t){u.prototype[t]=function(e){return this.routeSpace(t,arguments)}}),e.exports=a},{4:4}],6:[function(t,e,n){e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},{}],7:[function(t,e,n){var i=t(28)();t(26)(i),t(40)(i),t(22)(i),t(25)(i),t(30)(i),t(21)(i),t(23)(i),t(24)(i),t(29)(i),t(32)(i),t(33)(i),t(31)(i),t(27)(i),t(34)(i),t(35)(i),t(36)(i),t(37)(i),t(38)(i),t(46)(i),t(44)(i),t(45)(i),t(47)(i),t(48)(i),t(49)(i),t(15)(i),t(16)(i),t(17)(i),t(18)(i),t(19)(i),t(20)(i),t(8)(i),t(9)(i),t(10)(i),t(11)(i),t(12)(i),t(13)(i),t(14)(i);var a=[];a.push(t(41)(i),t(42)(i),t(43)(i)),i.plugins.register(a),e.exports=i,\"undefined\"!=typeof window&&(window.Chart=i)},{10:10,11:11,12:12,13:13,14:14,15:15,16:16,17:17,18:18,19:19,20:20,21:21,22:22,23:23,24:24,25:25,26:26,27:27,28:28,29:29,30:30,31:31,32:32,33:33,34:34,35:35,36:36,37:37,38:38,40:40,41:41,42:42,43:43,44:44,45:45,46:46,47:47,48:48,49:49,8:8,9:9}],8:[function(t,e,n){\"use strict\";e.exports=function(t){t.Bar=function(e,n){return n.type=\"bar\",new t(e,n)}}},{}],9:[function(t,e,n){\"use strict\";e.exports=function(t){t.Bubble=function(e,n){return n.type=\"bubble\",new t(e,n)}}},{}],10:[function(t,e,n){\"use strict\";e.exports=function(t){t.Doughnut=function(e,n){return n.type=\"doughnut\",new t(e,n)}}},{}],11:[function(t,e,n){\"use strict\";e.exports=function(t){t.Line=function(e,n){return n.type=\"line\",new t(e,n)}}},{}],12:[function(t,e,n){\"use strict\";e.exports=function(t){t.PolarArea=function(e,n){return n.type=\"polarArea\",new t(e,n)}}},{}],13:[function(t,e,n){\"use strict\";e.exports=function(t){t.Radar=function(e,n){return n.type=\"radar\",new t(e,n)}}},{}],14:[function(t,e,n){\"use strict\";e.exports=function(t){var e={hover:{mode:\"single\"},scales:{xAxes:[{type:\"linear\",position:\"bottom\",id:\"x-axis-1\"}],yAxes:[{type:\"linear\",position:\"left\",id:\"y-axis-1\"}]},tooltips:{callbacks:{title:function(){return\"\"},label:function(t){return\"(\"+t.xLabel+\", \"+t.yLabel+\")\"}}}};t.defaults.scatter=e,t.controllers.scatter=t.controllers.line,t.Scatter=function(e,n){return n.type=\"scatter\",new t(e,n)}}},{}],15:[function(t,e,n){\"use strict\";e.exports=function(t){var e=t.helpers;t.defaults.bar={hover:{mode:\"label\"},scales:{xAxes:[{type:\"category\",categoryPercentage:.8,barPercentage:.9,gridLines:{offsetGridLines:!0}}],yAxes:[{type:\"linear\"}]}},t.controllers.bar=t.DatasetController.extend({dataElementType:t.elements.Rectangle,initialize:function(){var e,n=this;t.DatasetController.prototype.initialize.apply(n,arguments),e=n.getMeta(),e.stack=n.getDataset().stack,e.bar=!0},update:function(t){var e,n,i=this,a=i.getMeta().data;for(i._ruler=i.getRuler(),e=0,n=a.length;e<n;++e)i.updateElement(a[e],e,t)},updateElement:function(t,n,i){var a=this,o=a.chart,r=a.getMeta(),l=a.getDataset(),s=t.custom||{},u=o.options.elements.rectangle;t._xScale=a.getScaleForId(r.xAxisID),t._yScale=a.getScaleForId(r.yAxisID),t._datasetIndex=a.index,t._index=n,t._model={datasetLabel:l.label,label:o.data.labels[n],borderSkipped:s.borderSkipped?s.borderSkipped:u.borderSkipped,backgroundColor:s.backgroundColor?s.backgroundColor:e.getValueAtIndexOrDefault(l.backgroundColor,n,u.backgroundColor),borderColor:s.borderColor?s.borderColor:e.getValueAtIndexOrDefault(l.borderColor,n,u.borderColor),borderWidth:s.borderWidth?s.borderWidth:e.getValueAtIndexOrDefault(l.borderWidth,n,u.borderWidth)},a.updateElementGeometry(t,n,i),t.pivot()},updateElementGeometry:function(t,e,n){var i=this,a=t._model,o=i.getValueScale(),r=o.getBasePixel(),l=o.isHorizontal(),s=i._ruler||i.getRuler(),u=i.calculateBarValuePixels(i.index,e),d=i.calculateBarIndexPixels(i.index,e,s);a.horizontal=l,a.base=n?r:u.base,a.x=l?n?r:u.head:d.center,a.y=l?d.center:n?r:u.head,a.height=l?d.size:void 0,a.width=l?void 0:d.size},getValueScaleId:function(){return this.getMeta().yAxisID},getIndexScaleId:function(){return this.getMeta().xAxisID},getValueScale:function(){return this.getScaleForId(this.getValueScaleId())},getIndexScale:function(){return this.getScaleForId(this.getIndexScaleId())},getStackCount:function(t){var e,n,i=this,a=i.chart,o=i.getIndexScale(),r=o.options.stacked,l=void 0===t?a.data.datasets.length:t+1,s=[];for(e=0;e<l;++e)n=a.getDatasetMeta(e),n.bar&&a.isDatasetVisible(e)&&(r===!1||r===!0&&s.indexOf(n.stack)===-1||void 0===r&&(void 0===n.stack||s.indexOf(n.stack)===-1))&&s.push(n.stack);return s.length},getStackIndex:function(t){return this.getStackCount(t)-1},getRuler:function(){var t=this,n=t.getIndexScale(),i=n.options,a=t.getStackCount(),o=n.isHorizontal()?n.width:n.height,r=o/n.ticks.length,l=r*i.categoryPercentage,s=l/a,u=s*i.barPercentage;return u=Math.min(e.getValueOrDefault(i.barThickness,u),e.getValueOrDefault(i.maxBarThickness,1/0)),{stackCount:a,tickSize:r,categorySize:l,categorySpacing:r-l,fullBarSize:s,barSize:u,barSpacing:s-u,scale:n}},calculateBarValuePixels:function(t,e){var n,i,a,o,r,l,s=this,u=s.chart,d=s.getMeta(),c=s.getValueScale(),h=u.data.datasets,f=Number(h[t].data[e]),g=c.options.stacked,p=d.stack,m=0;if(g||void 0===g&&void 0!==p)for(n=0;n<t;++n)i=u.getDatasetMeta(n),i.bar&&i.stack===p&&i.controller.getValueScaleId()===c.id&&u.isDatasetVisible(n)&&(a=Number(h[n].data[e]),(f<0&&a<0||f>=0&&a>0)&&(m+=a));return o=c.getPixelForValue(m),r=c.getPixelForValue(m+f),l=(r-o)/2,{size:l,base:o,head:r,center:r+l/2}},calculateBarIndexPixels:function(t,e,n){var i=this,a=n.scale,o=i.chart.isCombo,r=i.getStackIndex(t),l=a.getPixelForValue(null,e,t,o),s=n.barSize;return l-=o?n.tickSize/2:0,l+=n.fullBarSize*r,l+=n.categorySpacing/2,l+=n.barSpacing/2,{size:s,base:l,head:l+s,center:l+s/2}},draw:function(){var t,n=this,i=n.chart,a=n.getMeta().data,o=n.getDataset(),r=a.length,l=0;for(e.canvas.clipArea(i.ctx,i.chartArea);l<r;++l)t=o.data[l],null===t||void 0===t||isNaN(t)||a[l].draw();e.canvas.unclipArea(i.ctx)},setHoverStyle:function(t){var n=this.chart.data.datasets[t._datasetIndex],i=t._index,a=t.custom||{},o=t._model;o.backgroundColor=a.hoverBackgroundColor?a.hoverBackgroundColor:e.getValueAtIndexOrDefault(n.hoverBackgroundColor,i,e.getHoverColor(o.backgroundColor)),o.borderColor=a.hoverBorderColor?a.hoverBorderColor:e.getValueAtIndexOrDefault(n.hoverBorderColor,i,e.getHoverColor(o.borderColor)),o.borderWidth=a.hoverBorderWidth?a.hoverBorderWidth:e.getValueAtIndexOrDefault(n.hoverBorderWidth,i,o.borderWidth)},removeHoverStyle:function(t){var n=this.chart.data.datasets[t._datasetIndex],i=t._index,a=t.custom||{},o=t._model,r=this.chart.options.elements.rectangle;o.backgroundColor=a.backgroundColor?a.backgroundColor:e.getValueAtIndexOrDefault(n.backgroundColor,i,r.backgroundColor),o.borderColor=a.borderColor?a.borderColor:e.getValueAtIndexOrDefault(n.borderColor,i,r.borderColor),o.borderWidth=a.borderWidth?a.borderWidth:e.getValueAtIndexOrDefault(n.borderWidth,i,r.borderWidth)}}),t.defaults.horizontalBar={hover:{mode:\"label\"},scales:{xAxes:[{type:\"linear\",position:\"bottom\"}],yAxes:[{position:\"left\",type:\"category\",categoryPercentage:.8,barPercentage:.9,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:\"left\"}},tooltips:{callbacks:{title:function(t,e){var n=\"\";return t.length>0&&(t[0].yLabel?n=t[0].yLabel:e.labels.length>0&&t[0].index<e.labels.length&&(n=e.labels[t[0].index])),n},label:function(t,e){var n=e.datasets[t.datasetIndex].label||\"\";return n+\": \"+t.xLabel}}}},t.controllers.horizontalBar=t.controllers.bar.extend({getValueScaleId:function(){return this.getMeta().xAxisID},getIndexScaleId:function(){return this.getMeta().yAxisID}})}},{}],16:[function(t,e,n){\"use strict\";e.exports=function(t){var e=t.helpers;t.defaults.bubble={hover:{mode:\"single\"},scales:{xAxes:[{type:\"linear\",position:\"bottom\",id:\"x-axis-0\"}],yAxes:[{type:\"linear\",position:\"left\",id:\"y-axis-0\"}]},tooltips:{callbacks:{title:function(){return\"\"},label:function(t,e){var n=e.datasets[t.datasetIndex].label||\"\",i=e.datasets[t.datasetIndex].data[t.index];return n+\": (\"+t.xLabel+\", \"+t.yLabel+\", \"+i.r+\")\"}}}},t.controllers.bubble=t.DatasetController.extend({dataElementType:t.elements.Point,update:function(t){var n=this,i=n.getMeta(),a=i.data;e.each(a,function(e,i){n.updateElement(e,i,t)})},updateElement:function(n,i,a){var o=this,r=o.getMeta(),l=o.getScaleForId(r.xAxisID),s=o.getScaleForId(r.yAxisID),u=n.custom||{},d=o.getDataset(),c=d.data[i],h=o.chart.options.elements.point,f=o.index;e.extend(n,{_xScale:l,_yScale:s,_datasetIndex:f,_index:i,_model:{x:a?l.getPixelForDecimal(.5):l.getPixelForValue(\"object\"==typeof c?c:NaN,i,f,o.chart.isCombo),y:a?s.getBasePixel():s.getPixelForValue(c,i,f),radius:a?0:u.radius?u.radius:o.getRadius(c),hitRadius:u.hitRadius?u.hitRadius:e.getValueAtIndexOrDefault(d.hitRadius,i,h.hitRadius)}}),t.DatasetController.prototype.removeHoverStyle.call(o,n,h);var g=n._model;g.skip=u.skip?u.skip:isNaN(g.x)||isNaN(g.y),n.pivot()},getRadius:function(t){return t.r||this.chart.options.elements.point.radius},setHoverStyle:function(n){var i=this;t.DatasetController.prototype.setHoverStyle.call(i,n);var a=i.chart.data.datasets[n._datasetIndex],o=n._index,r=n.custom||{},l=n._model;\nl.radius=r.hoverRadius?r.hoverRadius:e.getValueAtIndexOrDefault(a.hoverRadius,o,i.chart.options.elements.point.hoverRadius)+i.getRadius(a.data[o])},removeHoverStyle:function(e){var n=this;t.DatasetController.prototype.removeHoverStyle.call(n,e,n.chart.options.elements.point);var i=n.chart.data.datasets[e._datasetIndex].data[e._index],a=e.custom||{},o=e._model;o.radius=a.radius?a.radius:n.getRadius(i)}})}},{}],17:[function(t,e,n){\"use strict\";e.exports=function(t){var e=t.helpers,n=t.defaults;n.doughnut={animation:{animateRotate:!0,animateScale:!1},aspectRatio:1,hover:{mode:\"single\"},legendCallback:function(t){var e=[];e.push('<ul class=\"'+t.id+'-legend\">');var n=t.data,i=n.datasets,a=n.labels;if(i.length)for(var o=0;o<i[0].data.length;++o)e.push('<li><span style=\"background-color:'+i[0].backgroundColor[o]+'\"></span>'),a[o]&&e.push(a[o]),e.push(\"</li>\");return e.push(\"</ul>\"),e.join(\"\")},legend:{labels:{generateLabels:function(t){var n=t.data;return n.labels.length&&n.datasets.length?n.labels.map(function(i,a){var o=t.getDatasetMeta(0),r=n.datasets[0],l=o.data[a],s=l&&l.custom||{},u=e.getValueAtIndexOrDefault,d=t.options.elements.arc,c=s.backgroundColor?s.backgroundColor:u(r.backgroundColor,a,d.backgroundColor),h=s.borderColor?s.borderColor:u(r.borderColor,a,d.borderColor),f=s.borderWidth?s.borderWidth:u(r.borderWidth,a,d.borderWidth);return{text:i,fillStyle:c,strokeStyle:h,lineWidth:f,hidden:isNaN(r.data[a])||o.data[a].hidden,index:a}}):[]}},onClick:function(t,e){var n,i,a,o=e.index,r=this.chart;for(n=0,i=(r.data.datasets||[]).length;n<i;++n)a=r.getDatasetMeta(n),a.data[o]&&(a.data[o].hidden=!a.data[o].hidden);r.update()}},cutoutPercentage:50,rotation:Math.PI*-.5,circumference:2*Math.PI,tooltips:{callbacks:{title:function(){return\"\"},label:function(t,n){var i=n.labels[t.index],a=\": \"+n.datasets[t.datasetIndex].data[t.index];return e.isArray(i)?(i=i.slice(),i[0]+=a):i+=a,i}}}},n.pie=e.clone(n.doughnut),e.extend(n.pie,{cutoutPercentage:0}),t.controllers.doughnut=t.controllers.pie=t.DatasetController.extend({dataElementType:t.elements.Arc,linkScales:e.noop,getRingIndex:function(t){for(var e=0,n=0;n<t;++n)this.chart.isDatasetVisible(n)&&++e;return e},update:function(t){var n=this,i=n.chart,a=i.chartArea,o=i.options,r=o.elements.arc,l=a.right-a.left-r.borderWidth,s=a.bottom-a.top-r.borderWidth,u=Math.min(l,s),d={x:0,y:0},c=n.getMeta(),h=o.cutoutPercentage,f=o.circumference;if(f<2*Math.PI){var g=o.rotation%(2*Math.PI);g+=2*Math.PI*(g>=Math.PI?-1:g<-Math.PI?1:0);var p=g+f,m={x:Math.cos(g),y:Math.sin(g)},v={x:Math.cos(p),y:Math.sin(p)},b=g<=0&&0<=p||g<=2*Math.PI&&2*Math.PI<=p,x=g<=.5*Math.PI&&.5*Math.PI<=p||g<=2.5*Math.PI&&2.5*Math.PI<=p,y=g<=-Math.PI&&-Math.PI<=p||g<=Math.PI&&Math.PI<=p,k=g<=.5*-Math.PI&&.5*-Math.PI<=p||g<=1.5*Math.PI&&1.5*Math.PI<=p,w=h/100,M={x:y?-1:Math.min(m.x*(m.x<0?1:w),v.x*(v.x<0?1:w)),y:k?-1:Math.min(m.y*(m.y<0?1:w),v.y*(v.y<0?1:w))},S={x:b?1:Math.max(m.x*(m.x>0?1:w),v.x*(v.x>0?1:w)),y:x?1:Math.max(m.y*(m.y>0?1:w),v.y*(v.y>0?1:w))},C={width:.5*(S.x-M.x),height:.5*(S.y-M.y)};u=Math.min(l/C.width,s/C.height),d={x:(S.x+M.x)*-.5,y:(S.y+M.y)*-.5}}i.borderWidth=n.getMaxBorderWidth(c.data),i.outerRadius=Math.max((u-i.borderWidth)/2,0),i.innerRadius=Math.max(h?i.outerRadius/100*h:0,0),i.radiusLength=(i.outerRadius-i.innerRadius)/i.getVisibleDatasetCount(),i.offsetX=d.x*i.outerRadius,i.offsetY=d.y*i.outerRadius,c.total=n.calculateTotal(),n.outerRadius=i.outerRadius-i.radiusLength*n.getRingIndex(n.index),n.innerRadius=Math.max(n.outerRadius-i.radiusLength,0),e.each(c.data,function(e,i){n.updateElement(e,i,t)})},updateElement:function(t,n,i){var a=this,o=a.chart,r=o.chartArea,l=o.options,s=l.animation,u=(r.left+r.right)/2,d=(r.top+r.bottom)/2,c=l.rotation,h=l.rotation,f=a.getDataset(),g=i&&s.animateRotate?0:t.hidden?0:a.calculateCircumference(f.data[n])*(l.circumference/(2*Math.PI)),p=i&&s.animateScale?0:a.innerRadius,m=i&&s.animateScale?0:a.outerRadius,v=e.getValueAtIndexOrDefault;e.extend(t,{_datasetIndex:a.index,_index:n,_model:{x:u+o.offsetX,y:d+o.offsetY,startAngle:c,endAngle:h,circumference:g,outerRadius:m,innerRadius:p,label:v(f.label,n,o.data.labels[n])}});var b=t._model;this.removeHoverStyle(t),i&&s.animateRotate||(0===n?b.startAngle=l.rotation:b.startAngle=a.getMeta().data[n-1]._model.endAngle,b.endAngle=b.startAngle+b.circumference),t.pivot()},removeHoverStyle:function(e){t.DatasetController.prototype.removeHoverStyle.call(this,e,this.chart.options.elements.arc)},calculateTotal:function(){var t,n=this.getDataset(),i=this.getMeta(),a=0;return e.each(i.data,function(e,i){t=n.data[i],isNaN(t)||e.hidden||(a+=Math.abs(t))}),a},calculateCircumference:function(t){var e=this.getMeta().total;return e>0&&!isNaN(t)?2*Math.PI*(t/e):0},getMaxBorderWidth:function(t){for(var e,n,i=0,a=this.index,o=t.length,r=0;r<o;r++)e=t[r]._model?t[r]._model.borderWidth:0,n=t[r]._chart?t[r]._chart.config.data.datasets[a].hoverBorderWidth:0,i=e>i?e:i,i=n>i?n:i;return i}})}},{}],18:[function(t,e,n){\"use strict\";e.exports=function(t){function e(t,e){return n.getValueOrDefault(t.showLine,e.showLines)}var n=t.helpers;t.defaults.line={showLines:!0,spanGaps:!1,hover:{mode:\"label\"},scales:{xAxes:[{type:\"category\",id:\"x-axis-0\"}],yAxes:[{type:\"linear\",id:\"y-axis-0\"}]}},t.controllers.line=t.DatasetController.extend({datasetElementType:t.elements.Line,dataElementType:t.elements.Point,update:function(t){var i,a,o,r=this,l=r.getMeta(),s=l.dataset,u=l.data||[],d=r.chart.options,c=d.elements.line,h=r.getScaleForId(l.yAxisID),f=r.getDataset(),g=e(f,d);for(g&&(o=s.custom||{},void 0!==f.tension&&void 0===f.lineTension&&(f.lineTension=f.tension),s._scale=h,s._datasetIndex=r.index,s._children=u,s._model={spanGaps:f.spanGaps?f.spanGaps:d.spanGaps,tension:o.tension?o.tension:n.getValueOrDefault(f.lineTension,c.tension),backgroundColor:o.backgroundColor?o.backgroundColor:f.backgroundColor||c.backgroundColor,borderWidth:o.borderWidth?o.borderWidth:f.borderWidth||c.borderWidth,borderColor:o.borderColor?o.borderColor:f.borderColor||c.borderColor,borderCapStyle:o.borderCapStyle?o.borderCapStyle:f.borderCapStyle||c.borderCapStyle,borderDash:o.borderDash?o.borderDash:f.borderDash||c.borderDash,borderDashOffset:o.borderDashOffset?o.borderDashOffset:f.borderDashOffset||c.borderDashOffset,borderJoinStyle:o.borderJoinStyle?o.borderJoinStyle:f.borderJoinStyle||c.borderJoinStyle,fill:o.fill?o.fill:void 0!==f.fill?f.fill:c.fill,steppedLine:o.steppedLine?o.steppedLine:n.getValueOrDefault(f.steppedLine,c.stepped),cubicInterpolationMode:o.cubicInterpolationMode?o.cubicInterpolationMode:n.getValueOrDefault(f.cubicInterpolationMode,c.cubicInterpolationMode)},s.pivot()),i=0,a=u.length;i<a;++i)r.updateElement(u[i],i,t);for(g&&0!==s._model.tension&&r.updateBezierControlPoints(),i=0,a=u.length;i<a;++i)u[i].pivot()},getPointBackgroundColor:function(t,e){var i=this.chart.options.elements.point.backgroundColor,a=this.getDataset(),o=t.custom||{};return o.backgroundColor?i=o.backgroundColor:a.pointBackgroundColor?i=n.getValueAtIndexOrDefault(a.pointBackgroundColor,e,i):a.backgroundColor&&(i=a.backgroundColor),i},getPointBorderColor:function(t,e){var i=this.chart.options.elements.point.borderColor,a=this.getDataset(),o=t.custom||{};return o.borderColor?i=o.borderColor:a.pointBorderColor?i=n.getValueAtIndexOrDefault(a.pointBorderColor,e,i):a.borderColor&&(i=a.borderColor),i},getPointBorderWidth:function(t,e){var i=this.chart.options.elements.point.borderWidth,a=this.getDataset(),o=t.custom||{};return isNaN(o.borderWidth)?isNaN(a.pointBorderWidth)?isNaN(a.borderWidth)||(i=a.borderWidth):i=n.getValueAtIndexOrDefault(a.pointBorderWidth,e,i):i=o.borderWidth,i},updateElement:function(t,e,i){var a,o,r=this,l=r.getMeta(),s=t.custom||{},u=r.getDataset(),d=r.index,c=u.data[e],h=r.getScaleForId(l.yAxisID),f=r.getScaleForId(l.xAxisID),g=r.chart.options.elements.point,p=r.chart.data.labels||[],m=1===p.length||1===u.data.length||r.chart.isCombo;void 0!==u.radius&&void 0===u.pointRadius&&(u.pointRadius=u.radius),void 0!==u.hitRadius&&void 0===u.pointHitRadius&&(u.pointHitRadius=u.hitRadius),a=f.getPixelForValue(\"object\"==typeof c?c:NaN,e,d,m),o=i?h.getBasePixel():r.calculatePointY(c,e,d),t._xScale=f,t._yScale=h,t._datasetIndex=d,t._index=e,t._model={x:a,y:o,skip:s.skip||isNaN(a)||isNaN(o),radius:s.radius||n.getValueAtIndexOrDefault(u.pointRadius,e,g.radius),pointStyle:s.pointStyle||n.getValueAtIndexOrDefault(u.pointStyle,e,g.pointStyle),backgroundColor:r.getPointBackgroundColor(t,e),borderColor:r.getPointBorderColor(t,e),borderWidth:r.getPointBorderWidth(t,e),tension:l.dataset._model?l.dataset._model.tension:0,steppedLine:!!l.dataset._model&&l.dataset._model.steppedLine,hitRadius:s.hitRadius||n.getValueAtIndexOrDefault(u.pointHitRadius,e,g.hitRadius)}},calculatePointY:function(t,e,n){var i,a,o,r=this,l=r.chart,s=r.getMeta(),u=r.getScaleForId(s.yAxisID),d=0,c=0;if(u.options.stacked){for(i=0;i<n;i++)if(a=l.data.datasets[i],o=l.getDatasetMeta(i),\"line\"===o.type&&o.yAxisID===u.id&&l.isDatasetVisible(i)){var h=Number(u.getRightValue(a.data[e]));h<0?c+=h||0:d+=h||0}var f=Number(u.getRightValue(t));return f<0?u.getPixelForValue(c+f):u.getPixelForValue(d+f)}return u.getPixelForValue(t)},updateBezierControlPoints:function(){function t(t,e,n){return Math.max(Math.min(t,n),e)}var e,i,a,o,r,l=this,s=l.getMeta(),u=l.chart.chartArea,d=s.data||[];if(s.dataset._model.spanGaps&&(d=d.filter(function(t){return!t._model.skip})),\"monotone\"===s.dataset._model.cubicInterpolationMode)n.splineCurveMonotone(d);else for(e=0,i=d.length;e<i;++e)a=d[e],o=a._model,r=n.splineCurve(n.previousItem(d,e)._model,o,n.nextItem(d,e)._model,s.dataset._model.tension),o.controlPointPreviousX=r.previous.x,o.controlPointPreviousY=r.previous.y,o.controlPointNextX=r.next.x,o.controlPointNextY=r.next.y;if(l.chart.options.elements.line.capBezierPoints)for(e=0,i=d.length;e<i;++e)o=d[e]._model,o.controlPointPreviousX=t(o.controlPointPreviousX,u.left,u.right),o.controlPointPreviousY=t(o.controlPointPreviousY,u.top,u.bottom),o.controlPointNextX=t(o.controlPointNextX,u.left,u.right),o.controlPointNextY=t(o.controlPointNextY,u.top,u.bottom)},draw:function(){var n=this,i=n.chart,a=n.getMeta(),o=a.data||[],r=i.chartArea,l=o.length,s=0;for(t.canvasHelpers.clipArea(i.ctx,r),e(n.getDataset(),i.options)&&a.dataset.draw(),t.canvasHelpers.unclipArea(i.ctx);s<l;++s)o[s].draw(r)},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],i=t._index,a=t.custom||{},o=t._model;o.radius=a.hoverRadius||n.getValueAtIndexOrDefault(e.pointHoverRadius,i,this.chart.options.elements.point.hoverRadius),o.backgroundColor=a.hoverBackgroundColor||n.getValueAtIndexOrDefault(e.pointHoverBackgroundColor,i,n.getHoverColor(o.backgroundColor)),o.borderColor=a.hoverBorderColor||n.getValueAtIndexOrDefault(e.pointHoverBorderColor,i,n.getHoverColor(o.borderColor)),o.borderWidth=a.hoverBorderWidth||n.getValueAtIndexOrDefault(e.pointHoverBorderWidth,i,o.borderWidth)},removeHoverStyle:function(t){var e=this,i=e.chart.data.datasets[t._datasetIndex],a=t._index,o=t.custom||{},r=t._model;void 0!==i.radius&&void 0===i.pointRadius&&(i.pointRadius=i.radius),r.radius=o.radius||n.getValueAtIndexOrDefault(i.pointRadius,a,e.chart.options.elements.point.radius),r.backgroundColor=e.getPointBackgroundColor(t,a),r.borderColor=e.getPointBorderColor(t,a),r.borderWidth=e.getPointBorderWidth(t,a)}})}},{}],19:[function(t,e,n){\"use strict\";e.exports=function(t){var e=t.helpers;t.defaults.polarArea={scale:{type:\"radialLinear\",angleLines:{display:!1},gridLines:{circular:!0},pointLabels:{display:!1},ticks:{beginAtZero:!0}},animation:{animateRotate:!0,animateScale:!0},startAngle:-.5*Math.PI,aspectRatio:1,legendCallback:function(t){var e=[];e.push('<ul class=\"'+t.id+'-legend\">');var n=t.data,i=n.datasets,a=n.labels;if(i.length)for(var o=0;o<i[0].data.length;++o)e.push('<li><span style=\"background-color:'+i[0].backgroundColor[o]+'\"></span>'),a[o]&&e.push(a[o]),e.push(\"</li>\");return e.push(\"</ul>\"),e.join(\"\")},legend:{labels:{generateLabels:function(t){var n=t.data;return n.labels.length&&n.datasets.length?n.labels.map(function(i,a){var o=t.getDatasetMeta(0),r=n.datasets[0],l=o.data[a],s=l.custom||{},u=e.getValueAtIndexOrDefault,d=t.options.elements.arc,c=s.backgroundColor?s.backgroundColor:u(r.backgroundColor,a,d.backgroundColor),h=s.borderColor?s.borderColor:u(r.borderColor,a,d.borderColor),f=s.borderWidth?s.borderWidth:u(r.borderWidth,a,d.borderWidth);return{text:i,fillStyle:c,strokeStyle:h,lineWidth:f,hidden:isNaN(r.data[a])||o.data[a].hidden,index:a}}):[]}},onClick:function(t,e){var n,i,a,o=e.index,r=this.chart;for(n=0,i=(r.data.datasets||[]).length;n<i;++n)a=r.getDatasetMeta(n),a.data[o].hidden=!a.data[o].hidden;r.update()}},tooltips:{callbacks:{title:function(){return\"\"},label:function(t,e){return e.labels[t.index]+\": \"+t.yLabel}}}},t.controllers.polarArea=t.DatasetController.extend({dataElementType:t.elements.Arc,linkScales:e.noop,update:function(t){var n=this,i=n.chart,a=i.chartArea,o=n.getMeta(),r=i.options,l=r.elements.arc,s=Math.min(a.right-a.left,a.bottom-a.top);i.outerRadius=Math.max((s-l.borderWidth/2)/2,0),i.innerRadius=Math.max(r.cutoutPercentage?i.outerRadius/100*r.cutoutPercentage:1,0),i.radiusLength=(i.outerRadius-i.innerRadius)/i.getVisibleDatasetCount(),n.outerRadius=i.outerRadius-i.radiusLength*n.index,n.innerRadius=n.outerRadius-i.radiusLength,o.count=n.countVisibleElements(),e.each(o.data,function(e,i){n.updateElement(e,i,t)})},updateElement:function(t,n,i){for(var a=this,o=a.chart,r=a.getDataset(),l=o.options,s=l.animation,u=o.scale,d=e.getValueAtIndexOrDefault,c=o.data.labels,h=a.calculateCircumference(r.data[n]),f=u.xCenter,g=u.yCenter,p=0,m=a.getMeta(),v=0;v<n;++v)isNaN(r.data[v])||m.data[v].hidden||++p;var b=l.startAngle,x=t.hidden?0:u.getDistanceFromCenterForValue(r.data[n]),y=b+h*p,k=y+(t.hidden?0:h),w=s.animateScale?0:u.getDistanceFromCenterForValue(r.data[n]);e.extend(t,{_datasetIndex:a.index,_index:n,_scale:u,_model:{x:f,y:g,innerRadius:0,outerRadius:i?w:x,startAngle:i&&s.animateRotate?b:y,endAngle:i&&s.animateRotate?b:k,label:d(c,n,c[n])}}),a.removeHoverStyle(t),t.pivot()},removeHoverStyle:function(e){t.DatasetController.prototype.removeHoverStyle.call(this,e,this.chart.options.elements.arc)},countVisibleElements:function(){var t=this.getDataset(),n=this.getMeta(),i=0;return e.each(n.data,function(e,n){isNaN(t.data[n])||e.hidden||i++}),i},calculateCircumference:function(t){var e=this.getMeta().count;return e>0&&!isNaN(t)?2*Math.PI/e:0}})}},{}],20:[function(t,e,n){\"use strict\";e.exports=function(t){var e=t.helpers;t.defaults.radar={aspectRatio:1,scale:{type:\"radialLinear\"},elements:{line:{tension:0}}},t.controllers.radar=t.DatasetController.extend({datasetElementType:t.elements.Line,dataElementType:t.elements.Point,linkScales:e.noop,update:function(t){var n=this,i=n.getMeta(),a=i.dataset,o=i.data,r=a.custom||{},l=n.getDataset(),s=n.chart.options.elements.line,u=n.chart.scale;void 0!==l.tension&&void 0===l.lineTension&&(l.lineTension=l.tension),e.extend(i.dataset,{_datasetIndex:n.index,_scale:u,_children:o,_loop:!0,_model:{tension:r.tension?r.tension:e.getValueOrDefault(l.lineTension,s.tension),backgroundColor:r.backgroundColor?r.backgroundColor:l.backgroundColor||s.backgroundColor,borderWidth:r.borderWidth?r.borderWidth:l.borderWidth||s.borderWidth,borderColor:r.borderColor?r.borderColor:l.borderColor||s.borderColor,fill:r.fill?r.fill:void 0!==l.fill?l.fill:s.fill,borderCapStyle:r.borderCapStyle?r.borderCapStyle:l.borderCapStyle||s.borderCapStyle,borderDash:r.borderDash?r.borderDash:l.borderDash||s.borderDash,borderDashOffset:r.borderDashOffset?r.borderDashOffset:l.borderDashOffset||s.borderDashOffset,borderJoinStyle:r.borderJoinStyle?r.borderJoinStyle:l.borderJoinStyle||s.borderJoinStyle}}),i.dataset.pivot(),e.each(o,function(e,i){n.updateElement(e,i,t)},n),n.updateBezierControlPoints()},updateElement:function(t,n,i){var a=this,o=t.custom||{},r=a.getDataset(),l=a.chart.scale,s=a.chart.options.elements.point,u=l.getPointPositionForValue(n,r.data[n]);void 0!==r.radius&&void 0===r.pointRadius&&(r.pointRadius=r.radius),void 0!==r.hitRadius&&void 0===r.pointHitRadius&&(r.pointHitRadius=r.hitRadius),e.extend(t,{_datasetIndex:a.index,_index:n,_scale:l,_model:{x:i?l.xCenter:u.x,y:i?l.yCenter:u.y,tension:o.tension?o.tension:e.getValueOrDefault(r.lineTension,a.chart.options.elements.line.tension),radius:o.radius?o.radius:e.getValueAtIndexOrDefault(r.pointRadius,n,s.radius),backgroundColor:o.backgroundColor?o.backgroundColor:e.getValueAtIndexOrDefault(r.pointBackgroundColor,n,s.backgroundColor),borderColor:o.borderColor?o.borderColor:e.getValueAtIndexOrDefault(r.pointBorderColor,n,s.borderColor),borderWidth:o.borderWidth?o.borderWidth:e.getValueAtIndexOrDefault(r.pointBorderWidth,n,s.borderWidth),pointStyle:o.pointStyle?o.pointStyle:e.getValueAtIndexOrDefault(r.pointStyle,n,s.pointStyle),hitRadius:o.hitRadius?o.hitRadius:e.getValueAtIndexOrDefault(r.pointHitRadius,n,s.hitRadius)}}),t._model.skip=o.skip?o.skip:isNaN(t._model.x)||isNaN(t._model.y)},updateBezierControlPoints:function(){var t=this.chart.chartArea,n=this.getMeta();e.each(n.data,function(i,a){var o=i._model,r=e.splineCurve(e.previousItem(n.data,a,!0)._model,o,e.nextItem(n.data,a,!0)._model,o.tension);o.controlPointPreviousX=Math.max(Math.min(r.previous.x,t.right),t.left),o.controlPointPreviousY=Math.max(Math.min(r.previous.y,t.bottom),t.top),o.controlPointNextX=Math.max(Math.min(r.next.x,t.right),t.left),o.controlPointNextY=Math.max(Math.min(r.next.y,t.bottom),t.top),i.pivot()})},setHoverStyle:function(t){var n=this.chart.data.datasets[t._datasetIndex],i=t.custom||{},a=t._index,o=t._model;o.radius=i.hoverRadius?i.hoverRadius:e.getValueAtIndexOrDefault(n.pointHoverRadius,a,this.chart.options.elements.point.hoverRadius),o.backgroundColor=i.hoverBackgroundColor?i.hoverBackgroundColor:e.getValueAtIndexOrDefault(n.pointHoverBackgroundColor,a,e.getHoverColor(o.backgroundColor)),o.borderColor=i.hoverBorderColor?i.hoverBorderColor:e.getValueAtIndexOrDefault(n.pointHoverBorderColor,a,e.getHoverColor(o.borderColor)),o.borderWidth=i.hoverBorderWidth?i.hoverBorderWidth:e.getValueAtIndexOrDefault(n.pointHoverBorderWidth,a,o.borderWidth)},removeHoverStyle:function(t){var n=this.chart.data.datasets[t._datasetIndex],i=t.custom||{},a=t._index,o=t._model,r=this.chart.options.elements.point;o.radius=i.radius?i.radius:e.getValueAtIndexOrDefault(n.pointRadius,a,r.radius),o.backgroundColor=i.backgroundColor?i.backgroundColor:e.getValueAtIndexOrDefault(n.pointBackgroundColor,a,r.backgroundColor),o.borderColor=i.borderColor?i.borderColor:e.getValueAtIndexOrDefault(n.pointBorderColor,a,r.borderColor),o.borderWidth=i.borderWidth?i.borderWidth:e.getValueAtIndexOrDefault(n.pointBorderWidth,a,r.borderWidth)}})}},{}],21:[function(t,e,n){\"use strict\";e.exports=function(t){var e=t.helpers;t.defaults.global.animation={duration:1e3,easing:\"easeOutQuart\",onProgress:e.noop,onComplete:e.noop},t.Animation=t.Element.extend({chart:null,currentStep:0,numSteps:60,easing:\"\",render:null,onAnimationProgress:null,onAnimationComplete:null}),t.animationService={frameDuration:17,animations:[],dropFrames:0,request:null,addAnimation:function(t,e,n,i){var a,o,r=this.animations;for(e.chart=t,i||(t.animating=!0),a=0,o=r.length;a<o;++a)if(r[a].chart===t)return void(r[a]=e);r.push(e),1===r.length&&this.requestAnimationFrame()},cancelAnimation:function(t){var n=e.findIndex(this.animations,function(e){return e.chart===t});n!==-1&&(this.animations.splice(n,1),t.animating=!1)},requestAnimationFrame:function(){var t=this;null===t.request&&(t.request=e.requestAnimFrame.call(window,function(){t.request=null,t.startDigest()}))},startDigest:function(){var t=this,e=Date.now(),n=0;t.dropFrames>1&&(n=Math.floor(t.dropFrames),t.dropFrames=t.dropFrames%1),t.advance(1+n);var i=Date.now();t.dropFrames+=(i-e)/t.frameDuration,t.animations.length>0&&t.requestAnimationFrame()},advance:function(t){for(var n,i,a=this.animations,o=0;o<a.length;)n=a[o],i=n.chart,n.currentStep=(n.currentStep||0)+t,n.currentStep=Math.min(n.currentStep,n.numSteps),e.callback(n.render,[i,n],i),e.callback(n.onAnimationProgress,[n],i),n.currentStep>=n.numSteps?(e.callback(n.onAnimationComplete,[n],i),i.animating=!1,a.splice(o,1)):++o}},Object.defineProperty(t.Animation.prototype,\"animationObject\",{get:function(){return this}}),Object.defineProperty(t.Animation.prototype,\"chartInstance\",{get:function(){return this.chart},set:function(t){this.chart=t}})}},{}],22:[function(t,e,n){\"use strict\";e.exports=function(t){var e=t.canvasHelpers={};e.drawPoint=function(e,n,i,a,o){var r,l,s,u,d,c;if(\"object\"==typeof n&&(r=n.toString(),\"[object HTMLImageElement]\"===r||\"[object HTMLCanvasElement]\"===r))return void e.drawImage(n,a-n.width/2,o-n.height/2,n.width,n.height);if(!(isNaN(i)||i<=0)){switch(n){default:e.beginPath(),e.arc(a,o,i,0,2*Math.PI),e.closePath(),e.fill();break;case\"triangle\":e.beginPath(),l=3*i/Math.sqrt(3),d=l*Math.sqrt(3)/2,e.moveTo(a-l/2,o+d/3),e.lineTo(a+l/2,o+d/3),e.lineTo(a,o-2*d/3),e.closePath(),e.fill();break;case\"rect\":c=1/Math.SQRT2*i,e.beginPath(),e.fillRect(a-c,o-c,2*c,2*c),e.strokeRect(a-c,o-c,2*c,2*c);break;case\"rectRounded\":var h=i/Math.SQRT2,f=a-h,g=o-h,p=Math.SQRT2*i;t.helpers.drawRoundedRectangle(e,f,g,p,p,i/2),e.fill();break;case\"rectRot\":c=1/Math.SQRT2*i,e.beginPath(),e.moveTo(a-c,o),e.lineTo(a,o+c),e.lineTo(a+c,o),e.lineTo(a,o-c),e.closePath(),e.fill();break;case\"cross\":e.beginPath(),e.moveTo(a,o+i),e.lineTo(a,o-i),e.moveTo(a-i,o),e.lineTo(a+i,o),e.closePath();break;case\"crossRot\":e.beginPath(),s=Math.cos(Math.PI/4)*i,u=Math.sin(Math.PI/4)*i,e.moveTo(a-s,o-u),e.lineTo(a+s,o+u),e.moveTo(a-s,o+u),e.lineTo(a+s,o-u),e.closePath();break;case\"star\":e.beginPath(),e.moveTo(a,o+i),e.lineTo(a,o-i),e.moveTo(a-i,o),e.lineTo(a+i,o),s=Math.cos(Math.PI/4)*i,u=Math.sin(Math.PI/4)*i,e.moveTo(a-s,o-u),e.lineTo(a+s,o+u),e.moveTo(a-s,o+u),e.lineTo(a+s,o-u),e.closePath();break;case\"line\":e.beginPath(),e.moveTo(a-i,o),e.lineTo(a+i,o),e.closePath();break;case\"dash\":e.beginPath(),e.moveTo(a,o),e.lineTo(a+i,o),e.closePath()}e.stroke()}},e.clipArea=function(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()},e.unclipArea=function(t){t.restore()},e.lineTo=function(t,e,n,i){return n.steppedLine?(\"after\"===n.steppedLine?t.lineTo(e.x,n.y):t.lineTo(n.x,e.y),void t.lineTo(n.x,n.y)):n.tension?void t.bezierCurveTo(i?e.controlPointPreviousX:e.controlPointNextX,i?e.controlPointPreviousY:e.controlPointNextY,i?n.controlPointNextX:n.controlPointPreviousX,i?n.controlPointNextY:n.controlPointPreviousY,n.x,n.y):void t.lineTo(n.x,n.y)},t.helpers.canvas=e}},{}],23:[function(t,e,n){\"use strict\";e.exports=function(t){function e(e){e=e||{};var n=e.data=e.data||{};return n.datasets=n.datasets||[],n.labels=n.labels||[],e.options=a.configMerge(t.defaults.global,t.defaults[e.type],e.options||{}),e}function n(t){var e=t.options;e.scale?t.scale.options=e.scale:e.scales&&e.scales.xAxes.concat(e.scales.yAxes).forEach(function(e){t.scales[e.id].options=e}),t.tooltip._options=e.tooltips}function i(t){return\"top\"===t||\"bottom\"===t}var a=t.helpers,o=t.plugins,r=t.platform;t.types={},t.instances={},t.controllers={},a.extend(t.prototype,{construct:function(n,i){var o=this;i=e(i);var l=r.acquireContext(n,i),s=l&&l.canvas,u=s&&s.height,d=s&&s.width;return o.id=a.uid(),o.ctx=l,o.canvas=s,o.config=i,o.width=d,o.height=u,o.aspectRatio=u?d/u:null,o.options=i.options,o._bufferedRender=!1,o.chart=o,o.controller=o,t.instances[o.id]=o,Object.defineProperty(o,\"data\",{get:function(){return o.config.data},set:function(t){o.config.data=t}}),l&&s?(o.initialize(),void o.update()):void console.error(\"Failed to create chart: can't acquire context from the given item\")},initialize:function(){var t=this;return o.notify(t,\"beforeInit\"),a.retinaScale(t),t.bindEvents(),t.options.responsive&&t.resize(!0),t.ensureScalesHaveIDs(),t.buildScales(),t.initToolTip(),o.notify(t,\"afterInit\"),t},clear:function(){return a.clear(this),this},stop:function(){return t.animationService.cancelAnimation(this),this},resize:function(t){var e=this,n=e.options,i=e.canvas,r=n.maintainAspectRatio&&e.aspectRatio||null,l=Math.floor(a.getMaximumWidth(i)),s=Math.floor(r?l/r:a.getMaximumHeight(i));if((e.width!==l||e.height!==s)&&(i.width=e.width=l,i.height=e.height=s,i.style.width=l+\"px\",i.style.height=s+\"px\",a.retinaScale(e),!t)){var u={width:l,height:s};o.notify(e,\"resize\",[u]),e.options.onResize&&e.options.onResize(e,u),e.stop(),e.update(e.options.responsiveAnimationDuration)}},ensureScalesHaveIDs:function(){var t=this.options,e=t.scales||{},n=t.scale;a.each(e.xAxes,function(t,e){t.id=t.id||\"x-axis-\"+e}),a.each(e.yAxes,function(t,e){t.id=t.id||\"y-axis-\"+e}),n&&(n.id=n.id||\"scale\")},buildScales:function(){var e=this,n=e.options,o=e.scales={},r=[];n.scales&&(r=r.concat((n.scales.xAxes||[]).map(function(t){return{options:t,dtype:\"category\",dposition:\"bottom\"}}),(n.scales.yAxes||[]).map(function(t){return{options:t,dtype:\"linear\",dposition:\"left\"}}))),n.scale&&r.push({options:n.scale,dtype:\"radialLinear\",isDefault:!0,dposition:\"chartArea\"}),a.each(r,function(n){var r=n.options,l=a.getValueOrDefault(r.type,n.dtype),s=t.scaleService.getScaleConstructor(l);if(s){i(r.position)!==i(n.dposition)&&(r.position=n.dposition);var u=new s({id:r.id,options:r,ctx:e.ctx,chart:e});o[u.id]=u,n.isDefault&&(e.scale=u)}}),t.scaleService.addScalesToLayout(this)},buildOrUpdateControllers:function(){var e=this,n=[],i=[];if(a.each(e.data.datasets,function(a,o){var r=e.getDatasetMeta(o);if(r.type||(r.type=a.type||e.config.type),n.push(r.type),r.controller)r.controller.updateIndex(o);else{var l=t.controllers[r.type];if(void 0===l)throw new Error('\"'+r.type+'\" is not a chart type.');r.controller=new l(e,o),i.push(r.controller)}},e),n.length>1)for(var o=1;o<n.length;o++)if(n[o]!==n[o-1]){e.isCombo=!0;break}return i},resetElements:function(){var t=this;a.each(t.data.datasets,function(e,n){t.getDatasetMeta(n).controller.reset()},t)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(t,e){var i=this;if(n(i),o.notify(i,\"beforeUpdate\")!==!1){i.tooltip._data=i.data;var r=i.buildOrUpdateControllers();a.each(i.data.datasets,function(t,e){i.getDatasetMeta(e).controller.buildOrUpdateElements()},i),i.updateLayout(),a.each(r,function(t){t.reset()}),i.updateDatasets(),o.notify(i,\"afterUpdate\"),i._bufferedRender?i._bufferedRequest={lazy:e,duration:t}:i.render(t,e)}},updateLayout:function(){var e=this;o.notify(e,\"beforeLayout\")!==!1&&(t.layoutService.update(this,this.width,this.height),o.notify(e,\"afterScaleUpdate\"),o.notify(e,\"afterLayout\"))},updateDatasets:function(){var t=this;if(o.notify(t,\"beforeDatasetsUpdate\")!==!1){for(var e=0,n=t.data.datasets.length;e<n;++e)t.updateDataset(e);o.notify(t,\"afterDatasetsUpdate\")}},updateDataset:function(t){var e=this,n=e.getDatasetMeta(t),i={meta:n,index:t};o.notify(e,\"beforeDatasetUpdate\",[i])!==!1&&(n.controller.update(),o.notify(e,\"afterDatasetUpdate\",[i]))},render:function(e,n){var i=this;if(o.notify(i,\"beforeRender\")!==!1){var r=i.options.animation,l=function(t){o.notify(i,\"afterRender\"),a.callback(r&&r.onComplete,[t],i)};if(r&&(\"undefined\"!=typeof e&&0!==e||\"undefined\"==typeof e&&0!==r.duration)){var s=new t.Animation({numSteps:(e||r.duration)/16.66,easing:r.easing,render:function(t,e){var n=a.easingEffects[e.easing],i=e.currentStep,o=i/e.numSteps;t.draw(n(o),o,i)},onAnimationProgress:r.onProgress,onAnimationComplete:l});t.animationService.addAnimation(i,s,e,n)}else i.draw(),l(new t.Animation({numSteps:0,chart:i}));return i}},draw:function(t){var e=this;e.clear(),void 0!==t&&null!==t||(t=1),e.transition(t),o.notify(e,\"beforeDraw\",[t])!==!1&&(a.each(e.boxes,function(t){t.draw(e.chartArea)},e),e.scale&&e.scale.draw(),e.drawDatasets(t),e.tooltip.draw(),o.notify(e,\"afterDraw\",[t]))},transition:function(t){for(var e=this,n=0,i=(e.data.datasets||[]).length;n<i;++n)e.isDatasetVisible(n)&&e.getDatasetMeta(n).controller.transition(t);e.tooltip.transition(t)},drawDatasets:function(t){var e=this;if(o.notify(e,\"beforeDatasetsDraw\",[t])!==!1){for(var n=(e.data.datasets||[]).length-1;n>=0;--n)e.isDatasetVisible(n)&&e.drawDataset(n,t);o.notify(e,\"afterDatasetsDraw\",[t])}},drawDataset:function(t,e){var n=this,i=n.getDatasetMeta(t),a={meta:i,index:t,easingValue:e};o.notify(n,\"beforeDatasetDraw\",[a])!==!1&&(i.controller.draw(e),o.notify(n,\"afterDatasetDraw\",[a]))},getElementAtEvent:function(e){return t.Interaction.modes.single(this,e)},getElementsAtEvent:function(e){return t.Interaction.modes.label(this,e,{intersect:!0})},getElementsAtXAxis:function(e){return t.Interaction.modes[\"x-axis\"](this,e,{intersect:!0})},getElementsAtEventForMode:function(e,n,i){var a=t.Interaction.modes[n];return\"function\"==typeof a?a(this,e,i):[]},getDatasetAtEvent:function(e){return t.Interaction.modes.dataset(this,e,{intersect:!0})},getDatasetMeta:function(t){var e=this,n=e.data.datasets[t];n._meta||(n._meta={});var i=n._meta[e.id];return i||(i=n._meta[e.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),i},getVisibleDatasetCount:function(){for(var t=0,e=0,n=this.data.datasets.length;e<n;++e)this.isDatasetVisible(e)&&t++;return t},isDatasetVisible:function(t){var e=this.getDatasetMeta(t);return\"boolean\"==typeof e.hidden?!e.hidden:!this.data.datasets[t].hidden},generateLegend:function(){return this.options.legendCallback(this)},destroy:function(){var e,n,i,l=this,s=l.canvas;for(l.stop(),n=0,i=l.data.datasets.length;n<i;++n)e=l.getDatasetMeta(n),e.controller&&(e.controller.destroy(),e.controller=null);s&&(l.unbindEvents(),a.clear(l),r.releaseContext(l.ctx),l.canvas=null,l.ctx=null),o.notify(l,\"destroy\"),delete t.instances[l.id]},toBase64Image:function(){return this.canvas.toDataURL.apply(this.canvas,arguments)},initToolTip:function(){var e=this;e.tooltip=new t.Tooltip({_chart:e,_chartInstance:e,_data:e.data,_options:e.options.tooltips},e),e.tooltip.initialize()},bindEvents:function(){var t=this,e=t._listeners={},n=function(){t.eventHandler.apply(t,arguments)};a.each(t.options.events,function(i){r.addEventListener(t,i,n),e[i]=n}),t.options.responsive&&(n=function(){t.resize()},r.addEventListener(t,\"resize\",n),e.resize=n)},unbindEvents:function(){var t=this,e=t._listeners;e&&(delete t._listeners,a.each(e,function(e,n){r.removeEventListener(t,n,e)}))},updateHoverStyle:function(t,e,n){var i,a,o,r=n?\"setHoverStyle\":\"removeHoverStyle\";for(a=0,o=t.length;a<o;++a)i=t[a],i&&this.getDatasetMeta(i._datasetIndex).controller[r](i)},eventHandler:function(t){var e=this,n=e.tooltip;if(o.notify(e,\"beforeEvent\",[t])!==!1){e._bufferedRender=!0,e._bufferedRequest=null;var i=e.handleEvent(t);i|=n&&n.handleEvent(t),o.notify(e,\"afterEvent\",[t]);var a=e._bufferedRequest;return a?e.render(a.duration,a.lazy):i&&!e.animating&&(e.stop(),e.render(e.options.hover.animationDuration,!0)),e._bufferedRender=!1,e._bufferedRequest=null,e}},handleEvent:function(t){var e=this,n=e.options||{},i=n.hover,o=!1;return e.lastActive=e.lastActive||[],\"mouseout\"===t.type?e.active=[]:e.active=e.getElementsAtEventForMode(t,i.mode,i),i.onHover&&i.onHover.call(e,t.native,e.active),\"mouseup\"!==t.type&&\"click\"!==t.type||n.onClick&&n.onClick.call(e,t.native,e.active),e.lastActive.length&&e.updateHoverStyle(e.lastActive,i.mode,!1),e.active.length&&i.mode&&e.updateHoverStyle(e.active,i.mode,!0),o=!a.arrayEquals(e.active,e.lastActive),e.lastActive=e.active,o}}),t.Controller=t}},{}],24:[function(t,e,n){\"use strict\";e.exports=function(t){function e(t,e){return t._chartjs?void t._chartjs.listeners.push(e):(Object.defineProperty(t,\"_chartjs\",{configurable:!0,enumerable:!1,value:{listeners:[e]}}),void a.forEach(function(e){var n=\"onData\"+e.charAt(0).toUpperCase()+e.slice(1),a=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value:function(){var e=Array.prototype.slice.call(arguments),o=a.apply(this,e);return i.each(t._chartjs.listeners,function(t){\"function\"==typeof t[n]&&t[n].apply(t,e)}),o}})}))}function n(t,e){var n=t._chartjs;if(n){var i=n.listeners,o=i.indexOf(e);\no!==-1&&i.splice(o,1),i.length>0||(a.forEach(function(e){delete t[e]}),delete t._chartjs)}}var i=t.helpers,a=[\"push\",\"pop\",\"shift\",\"splice\",\"unshift\"];t.DatasetController=function(t,e){this.initialize(t,e)},i.extend(t.DatasetController.prototype,{datasetElementType:null,dataElementType:null,initialize:function(t,e){var n=this;n.chart=t,n.index=e,n.linkScales(),n.addElements()},updateIndex:function(t){this.index=t},linkScales:function(){var t=this,e=t.getMeta(),n=t.getDataset();null===e.xAxisID&&(e.xAxisID=n.xAxisID||t.chart.options.scales.xAxes[0].id),null===e.yAxisID&&(e.yAxisID=n.yAxisID||t.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(t){return this.chart.scales[t]},reset:function(){this.update(!0)},destroy:function(){this._data&&n(this._data,this)},createMetaDataset:function(){var t=this,e=t.datasetElementType;return e&&new e({_chart:t.chart,_datasetIndex:t.index})},createMetaData:function(t){var e=this,n=e.dataElementType;return n&&new n({_chart:e.chart,_datasetIndex:e.index,_index:t})},addElements:function(){var t,e,n=this,i=n.getMeta(),a=n.getDataset().data||[],o=i.data;for(t=0,e=a.length;t<e;++t)o[t]=o[t]||n.createMetaData(t);i.dataset=i.dataset||n.createMetaDataset()},addElementAndReset:function(t){var e=this.createMetaData(t);this.getMeta().data.splice(t,0,e),this.updateElement(e,t,!0)},buildOrUpdateElements:function(){var t=this,i=t.getDataset(),a=i.data||(i.data=[]);t._data!==a&&(t._data&&n(t._data,t),e(a,t),t._data=a),t.resyncElements()},update:i.noop,transition:function(t){for(var e=this.getMeta(),n=e.data||[],i=n.length,a=0;a<i;++a)n[a].transition(t);e.dataset&&e.dataset.transition(t)},draw:function(){var t=this.getMeta(),e=t.data||[],n=e.length,i=0;for(t.dataset&&t.dataset.draw();i<n;++i)e[i].draw()},removeHoverStyle:function(t,e){var n=this.chart.data.datasets[t._datasetIndex],a=t._index,o=t.custom||{},r=i.getValueAtIndexOrDefault,l=t._model;l.backgroundColor=o.backgroundColor?o.backgroundColor:r(n.backgroundColor,a,e.backgroundColor),l.borderColor=o.borderColor?o.borderColor:r(n.borderColor,a,e.borderColor),l.borderWidth=o.borderWidth?o.borderWidth:r(n.borderWidth,a,e.borderWidth)},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],n=t._index,a=t.custom||{},o=i.getValueAtIndexOrDefault,r=i.getHoverColor,l=t._model;l.backgroundColor=a.hoverBackgroundColor?a.hoverBackgroundColor:o(e.hoverBackgroundColor,n,r(l.backgroundColor)),l.borderColor=a.hoverBorderColor?a.hoverBorderColor:o(e.hoverBorderColor,n,r(l.borderColor)),l.borderWidth=a.hoverBorderWidth?a.hoverBorderWidth:o(e.hoverBorderWidth,n,l.borderWidth)},resyncElements:function(){var t=this,e=t.getMeta(),n=t.getDataset().data,i=e.data.length,a=n.length;a<i?e.data.splice(a,i-a):a>i&&t.insertElements(i,a-i)},insertElements:function(t,e){for(var n=0;n<e;++n)this.addElementAndReset(t+n)},onDataPush:function(){this.insertElements(this.getDataset().data.length-1,arguments.length)},onDataPop:function(){this.getMeta().data.pop()},onDataShift:function(){this.getMeta().data.shift()},onDataSplice:function(t,e){this.getMeta().data.splice(t,e),this.insertElements(t,arguments.length-2)},onDataUnshift:function(){this.insertElements(0,arguments.length)}}),t.DatasetController.extend=i.inherits}},{}],25:[function(t,e,n){\"use strict\";var i=t(3);e.exports=function(t){function e(t,e,n,a){var o,r,l,s,u,d,c,h,f,g=Object.keys(n);for(o=0,r=g.length;o<r;++o)if(l=g[o],d=n[l],e.hasOwnProperty(l)||(e[l]=d),s=e[l],s!==d&&\"_\"!==l[0]){if(t.hasOwnProperty(l)||(t[l]=s),u=t[l],c=typeof d,c===typeof u)if(\"string\"===c){if(h=i(u),h.valid&&(f=i(d),f.valid)){e[l]=f.mix(h,a).rgbString();continue}}else if(\"number\"===c&&isFinite(u)&&isFinite(d)){e[l]=u+(d-u)*a;continue}e[l]=d}}var n=t.helpers;t.elements={},t.Element=function(t){n.extend(this,t),this.initialize.apply(this,arguments)},n.extend(t.Element.prototype,{initialize:function(){this.hidden=!1},pivot:function(){var t=this;return t._view||(t._view=n.clone(t._model)),t._start={},t},transition:function(t){var n=this,i=n._model,a=n._start,o=n._view;return i&&1!==t?(o||(o=n._view={}),a||(a=n._start={}),e(a,o,i,t),n):(n._view=i,n._start=null,n)},tooltipPosition:function(){return{x:this._model.x,y:this._model.y}},hasValue:function(){return n.isNumber(this._model.x)&&n.isNumber(this._model.y)}}),t.Element.extend=n.inherits}},{3:3}],26:[function(t,e,n){\"use strict\";var i=t(3);e.exports=function(t){function e(t,e,n){var i;return\"string\"==typeof t?(i=parseInt(t,10),t.indexOf(\"%\")!==-1&&(i=i/100*e.parentNode[n])):i=t,i}function n(t){return void 0!==t&&null!==t&&\"none\"!==t}function a(t,i,a){var o=document.defaultView,r=t.parentNode,l=o.getComputedStyle(t)[i],s=o.getComputedStyle(r)[i],u=n(l),d=n(s),c=Number.POSITIVE_INFINITY;return u||d?Math.min(u?e(l,t,a):c,d?e(s,r,a):c):\"none\"}var o=t.helpers={};o.each=function(t,e,n,i){var a,r;if(o.isArray(t))if(r=t.length,i)for(a=r-1;a>=0;a--)e.call(n,t[a],a);else for(a=0;a<r;a++)e.call(n,t[a],a);else if(\"object\"==typeof t){var l=Object.keys(t);for(r=l.length,a=0;a<r;a++)e.call(n,t[l[a]],l[a])}},o.clone=function(t){var e={};return o.each(t,function(t,n){o.isArray(t)?e[n]=t.slice(0):\"object\"==typeof t&&null!==t?e[n]=o.clone(t):e[n]=t}),e},o.extend=function(t){for(var e=function(e,n){t[n]=e},n=1,i=arguments.length;n<i;n++)o.each(arguments[n],e);return t},o.configMerge=function(e){var n=o.clone(e);return o.each(Array.prototype.slice.call(arguments,1),function(e){o.each(e,function(e,i){var a=n.hasOwnProperty(i),r=a?n[i]:{};\"scales\"===i?n[i]=o.scaleMerge(r,e):\"scale\"===i?n[i]=o.configMerge(r,t.scaleService.getScaleDefaults(e.type),e):!a||\"object\"!=typeof r||o.isArray(r)||null===r||\"object\"!=typeof e||o.isArray(e)?n[i]=e:n[i]=o.configMerge(r,e)})}),n},o.scaleMerge=function(e,n){var i=o.clone(e);return o.each(n,function(e,n){\"xAxes\"===n||\"yAxes\"===n?i.hasOwnProperty(n)?o.each(e,function(e,a){var r=o.getValueOrDefault(e.type,\"xAxes\"===n?\"category\":\"linear\"),l=t.scaleService.getScaleDefaults(r);a>=i[n].length||!i[n][a].type?i[n].push(o.configMerge(l,e)):e.type&&e.type!==i[n][a].type?i[n][a]=o.configMerge(i[n][a],l,e):i[n][a]=o.configMerge(i[n][a],e)}):(i[n]=[],o.each(e,function(e){var a=o.getValueOrDefault(e.type,\"xAxes\"===n?\"category\":\"linear\");i[n].push(o.configMerge(t.scaleService.getScaleDefaults(a),e))})):i.hasOwnProperty(n)&&\"object\"==typeof i[n]&&null!==i[n]&&\"object\"==typeof e?i[n]=o.configMerge(i[n],e):i[n]=e}),i},o.getValueAtIndexOrDefault=function(t,e,n){return void 0===t||null===t?n:o.isArray(t)?e<t.length?t[e]:n:t},o.getValueOrDefault=function(t,e){return void 0===t?e:t},o.indexOf=Array.prototype.indexOf?function(t,e){return t.indexOf(e)}:function(t,e){for(var n=0,i=t.length;n<i;++n)if(t[n]===e)return n;return-1},o.where=function(t,e){if(o.isArray(t)&&Array.prototype.filter)return t.filter(e);var n=[];return o.each(t,function(t){e(t)&&n.push(t)}),n},o.findIndex=Array.prototype.findIndex?function(t,e,n){return t.findIndex(e,n)}:function(t,e,n){n=void 0===n?t:n;for(var i=0,a=t.length;i<a;++i)if(e.call(n,t[i],i,t))return i;return-1},o.findNextWhere=function(t,e,n){void 0!==n&&null!==n||(n=-1);for(var i=n+1;i<t.length;i++){var a=t[i];if(e(a))return a}},o.findPreviousWhere=function(t,e,n){void 0!==n&&null!==n||(n=t.length);for(var i=n-1;i>=0;i--){var a=t[i];if(e(a))return a}},o.inherits=function(t){var e=this,n=t&&t.hasOwnProperty(\"constructor\")?t.constructor:function(){return e.apply(this,arguments)},i=function(){this.constructor=n};return i.prototype=e.prototype,n.prototype=new i,n.extend=o.inherits,t&&o.extend(n.prototype,t),n.__super__=e.prototype,n},o.noop=function(){},o.uid=function(){var t=0;return function(){return t++}}(),o.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},o.almostEquals=function(t,e,n){return Math.abs(t-e)<n},o.almostWhole=function(t,e){var n=Math.round(t);return n-e<t&&n+e>t},o.max=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.max(t,e)},Number.NEGATIVE_INFINITY)},o.min=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.min(t,e)},Number.POSITIVE_INFINITY)},o.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return t=+t,0===t||isNaN(t)?t:t>0?1:-1},o.log10=Math.log10?function(t){return Math.log10(t)}:function(t){return Math.log(t)/Math.LN10},o.toRadians=function(t){return t*(Math.PI/180)},o.toDegrees=function(t){return t*(180/Math.PI)},o.getAngleFromPoint=function(t,e){var n=e.x-t.x,i=e.y-t.y,a=Math.sqrt(n*n+i*i),o=Math.atan2(i,n);return o<-.5*Math.PI&&(o+=2*Math.PI),{angle:o,distance:a}},o.distanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},o.aliasPixel=function(t){return t%2===0?0:.5},o.splineCurve=function(t,e,n,i){var a=t.skip?e:t,o=e,r=n.skip?e:n,l=Math.sqrt(Math.pow(o.x-a.x,2)+Math.pow(o.y-a.y,2)),s=Math.sqrt(Math.pow(r.x-o.x,2)+Math.pow(r.y-o.y,2)),u=l/(l+s),d=s/(l+s);u=isNaN(u)?0:u,d=isNaN(d)?0:d;var c=i*u,h=i*d;return{previous:{x:o.x-c*(r.x-a.x),y:o.y-c*(r.y-a.y)},next:{x:o.x+h*(r.x-a.x),y:o.y+h*(r.y-a.y)}}},o.EPSILON=Number.EPSILON||1e-14,o.splineCurveMonotone=function(t){var e,n,i,a,r=(t||[]).map(function(t){return{model:t._model,deltaK:0,mK:0}}),l=r.length;for(e=0;e<l;++e)if(i=r[e],!i.model.skip){if(n=e>0?r[e-1]:null,a=e<l-1?r[e+1]:null,a&&!a.model.skip){var s=a.model.x-i.model.x;i.deltaK=0!==s?(a.model.y-i.model.y)/s:0}!n||n.model.skip?i.mK=i.deltaK:!a||a.model.skip?i.mK=n.deltaK:this.sign(n.deltaK)!==this.sign(i.deltaK)?i.mK=0:i.mK=(n.deltaK+i.deltaK)/2}var u,d,c,h;for(e=0;e<l-1;++e)i=r[e],a=r[e+1],i.model.skip||a.model.skip||(o.almostEquals(i.deltaK,0,this.EPSILON)?i.mK=a.mK=0:(u=i.mK/i.deltaK,d=a.mK/i.deltaK,h=Math.pow(u,2)+Math.pow(d,2),h<=9||(c=3/Math.sqrt(h),i.mK=u*c*i.deltaK,a.mK=d*c*i.deltaK)));var f;for(e=0;e<l;++e)i=r[e],i.model.skip||(n=e>0?r[e-1]:null,a=e<l-1?r[e+1]:null,n&&!n.model.skip&&(f=(i.model.x-n.model.x)/3,i.model.controlPointPreviousX=i.model.x-f,i.model.controlPointPreviousY=i.model.y-f*i.mK),a&&!a.model.skip&&(f=(a.model.x-i.model.x)/3,i.model.controlPointNextX=i.model.x+f,i.model.controlPointNextY=i.model.y+f*i.mK))},o.nextItem=function(t,e,n){return n?e>=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},o.previousItem=function(t,e,n){return n?e<=0?t[t.length-1]:t[e-1]:e<=0?t[0]:t[e-1]},o.niceNum=function(t,e){var n,i=Math.floor(o.log10(t)),a=t/Math.pow(10,i);return n=e?a<1.5?1:a<3?2:a<7?5:10:a<=1?1:a<=2?2:a<=5?5:10,n*Math.pow(10,i)};var r=o.easingEffects={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return-1*t*(t-2)},easeInOutQuad:function(t){return(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1)},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return 1*((t=t/1-1)*t*t+1)},easeInOutCubic:function(t){return(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return-1*((t=t/1-1)*t*t*t-1)},easeInOutQuart:function(t){return(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},easeInQuint:function(t){return 1*(t/=1)*t*t*t*t},easeOutQuint:function(t){return 1*((t=t/1-1)*t*t*t*t+1)},easeInOutQuint:function(t){return(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},easeInSine:function(t){return-1*Math.cos(t/1*(Math.PI/2))+1},easeOutSine:function(t){return 1*Math.sin(t/1*(Math.PI/2))},easeInOutSine:function(t){return-.5*(Math.cos(Math.PI*t/1)-1)},easeInExpo:function(t){return 0===t?1:1*Math.pow(2,10*(t/1-1))},easeOutExpo:function(t){return 1===t?1:1*(-Math.pow(2,-10*t/1)+1)},easeInOutExpo:function(t){return 0===t?0:1===t?1:(t/=.5)<1?.5*Math.pow(2,10*(t-1)):.5*(-Math.pow(2,-10*--t)+2)},easeInCirc:function(t){return t>=1?t:-1*(Math.sqrt(1-(t/=1)*t)-1)},easeOutCirc:function(t){return 1*Math.sqrt(1-(t=t/1-1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:1===(t/=1)?1:(n||(n=.3),i<Math.abs(1)?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),-(i*Math.pow(2,10*(t-=1))*Math.sin((1*t-e)*(2*Math.PI)/n)))},easeOutElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:1===(t/=1)?1:(n||(n=.3),i<Math.abs(1)?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),i*Math.pow(2,-10*t)*Math.sin((1*t-e)*(2*Math.PI)/n)+1)},easeInOutElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:2===(t/=.5)?1:(n||(n=1*(.3*1.5)),i<Math.abs(1)?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),t<1?-.5*(i*Math.pow(2,10*(t-=1))*Math.sin((1*t-e)*(2*Math.PI)/n)):i*Math.pow(2,-10*(t-=1))*Math.sin((1*t-e)*(2*Math.PI)/n)*.5+1)},easeInBack:function(t){var e=1.70158;return 1*(t/=1)*t*((e+1)*t-e)},easeOutBack:function(t){var e=1.70158;return 1*((t=t/1-1)*t*((e+1)*t+e)+1)},easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?.5*(t*t*(((e*=1.525)+1)*t-e)):.5*((t-=2)*t*(((e*=1.525)+1)*t+e)+2)},easeInBounce:function(t){return 1-r.easeOutBounce(1-t)},easeOutBounce:function(t){return(t/=1)<1/2.75?1*(7.5625*t*t):t<2/2.75?1*(7.5625*(t-=1.5/2.75)*t+.75):t<2.5/2.75?1*(7.5625*(t-=2.25/2.75)*t+.9375):1*(7.5625*(t-=2.625/2.75)*t+.984375)},easeInOutBounce:function(t){return t<.5?.5*r.easeInBounce(2*t):.5*r.easeOutBounce(2*t-1)+.5}};o.requestAnimFrame=function(){return\"undefined\"==typeof window?function(t){t()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)}}(),o.getRelativePosition=function(t,e){var n,i,a=t.originalEvent||t,r=t.currentTarget||t.srcElement,l=r.getBoundingClientRect(),s=a.touches;s&&s.length>0?(n=s[0].clientX,i=s[0].clientY):(n=a.clientX,i=a.clientY);var u=parseFloat(o.getStyle(r,\"padding-left\")),d=parseFloat(o.getStyle(r,\"padding-top\")),c=parseFloat(o.getStyle(r,\"padding-right\")),h=parseFloat(o.getStyle(r,\"padding-bottom\")),f=l.right-l.left-u-c,g=l.bottom-l.top-d-h;return n=Math.round((n-l.left-u)/f*r.width/e.currentDevicePixelRatio),i=Math.round((i-l.top-d)/g*r.height/e.currentDevicePixelRatio),{x:n,y:i}},o.addEvent=function(t,e,n){t.addEventListener?t.addEventListener(e,n):t.attachEvent?t.attachEvent(\"on\"+e,n):t[\"on\"+e]=n},o.removeEvent=function(t,e,n){t.removeEventListener?t.removeEventListener(e,n,!1):t.detachEvent?t.detachEvent(\"on\"+e,n):t[\"on\"+e]=o.noop},o.getConstraintWidth=function(t){return a(t,\"max-width\",\"clientWidth\")},o.getConstraintHeight=function(t){return a(t,\"max-height\",\"clientHeight\")},o.getMaximumWidth=function(t){var e=t.parentNode,n=parseInt(o.getStyle(e,\"padding-left\"),10),i=parseInt(o.getStyle(e,\"padding-right\"),10),a=e.clientWidth-n-i,r=o.getConstraintWidth(t);return isNaN(r)?a:Math.min(a,r)},o.getMaximumHeight=function(t){var e=t.parentNode,n=parseInt(o.getStyle(e,\"padding-top\"),10),i=parseInt(o.getStyle(e,\"padding-bottom\"),10),a=e.clientHeight-n-i,r=o.getConstraintHeight(t);return isNaN(r)?a:Math.min(a,r)},o.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},o.retinaScale=function(t){var e=t.currentDevicePixelRatio=window.devicePixelRatio||1;if(1!==e){var n=t.canvas,i=t.height,a=t.width;n.height=i*e,n.width=a*e,t.ctx.scale(e,e),n.style.height=i+\"px\",n.style.width=a+\"px\"}},o.clear=function(t){t.ctx.clearRect(0,0,t.width,t.height)},o.fontString=function(t,e,n){return e+\" \"+t+\"px \"+n},o.longestText=function(t,e,n,i){i=i||{};var a=i.data=i.data||{},r=i.garbageCollect=i.garbageCollect||[];i.font!==e&&(a=i.data={},r=i.garbageCollect=[],i.font=e),t.font=e;var l=0;o.each(n,function(e){void 0!==e&&null!==e&&o.isArray(e)!==!0?l=o.measureText(t,a,r,l,e):o.isArray(e)&&o.each(e,function(e){void 0===e||null===e||o.isArray(e)||(l=o.measureText(t,a,r,l,e))})});var s=r.length/2;if(s>n.length){for(var u=0;u<s;u++)delete a[r[u]];r.splice(0,s)}return l},o.measureText=function(t,e,n,i,a){var o=e[a];return o||(o=e[a]=t.measureText(a).width,n.push(a)),o>i&&(i=o),i},o.numberOfLabelLines=function(t){var e=1;return o.each(t,function(t){o.isArray(t)&&t.length>e&&(e=t.length)}),e},o.drawRoundedRectangle=function(t,e,n,i,a,o){t.beginPath(),t.moveTo(e+o,n),t.lineTo(e+i-o,n),t.quadraticCurveTo(e+i,n,e+i,n+o),t.lineTo(e+i,n+a-o),t.quadraticCurveTo(e+i,n+a,e+i-o,n+a),t.lineTo(e+o,n+a),t.quadraticCurveTo(e,n+a,e,n+a-o),t.lineTo(e,n+o),t.quadraticCurveTo(e,n,e+o,n),t.closePath()},o.color=i?function(e){return e instanceof CanvasGradient&&(e=t.defaults.global.defaultColor),i(e)}:function(t){return console.error(\"Color.js not found!\"),t},o.isArray=Array.isArray?function(t){return Array.isArray(t)}:function(t){return\"[object Array]\"===Object.prototype.toString.call(t)},o.arrayEquals=function(t,e){var n,i,a,r;if(!t||!e||t.length!==e.length)return!1;for(n=0,i=t.length;n<i;++n)if(a=t[n],r=e[n],a instanceof Array&&r instanceof Array){if(!o.arrayEquals(a,r))return!1}else if(a!==r)return!1;return!0},o.callback=function(t,e,n){t&&\"function\"==typeof t.call&&t.apply(n,e)},o.getHoverColor=function(t){return t instanceof CanvasPattern?t:o.color(t).saturate(.5).darken(.1).rgbString()},o.callCallback=o.callback}},{3:3}],27:[function(t,e,n){\"use strict\";e.exports=function(t){function e(t,e){return t.native?{x:t.x,y:t.y}:r.getRelativePosition(t,e)}function n(t,e){var n,i,a,o,r,l=t.data.datasets;for(i=0,o=l.length;i<o;++i)if(t.isDatasetVisible(i))for(n=t.getDatasetMeta(i),a=0,r=n.data.length;a<r;++a){var s=n.data[a];s._view.skip||e(s)}}function i(t,e){var i=[];return n(t,function(t){t.inRange(e.x,e.y)&&i.push(t)}),i}function a(t,e,i,a){var o=Number.POSITIVE_INFINITY,l=[];return a||(a=r.distanceBetweenPoints),n(t,function(t){if(!i||t.inRange(e.x,e.y)){var n=t.getCenterPoint(),r=a(e,n);r<o?(l=[t],o=r):r===o&&l.push(t)}}),l}function o(t,n,o){var r=e(n,t),l=function(t,e){return Math.abs(t.x-e.x)},s=o.intersect?i(t,r):a(t,r,!1,l),u=[];return s.length?(t.data.datasets.forEach(function(e,n){if(t.isDatasetVisible(n)){var i=t.getDatasetMeta(n),a=i.data[s[0]._index];a&&!a._view.skip&&u.push(a)}}),u):[]}var r=t.helpers;t.Interaction={modes:{single:function(t,i){var a=e(i,t),o=[];return n(t,function(t){if(t.inRange(a.x,a.y))return o.push(t),o}),o.slice(0,1)},label:o,index:o,dataset:function(t,n,o){var r=e(n,t),l=o.intersect?i(t,r):a(t,r,!1);return l.length>0&&(l=t.getDatasetMeta(l[0]._datasetIndex).data),l},\"x-axis\":function(t,e){return o(t,e,!0)},point:function(t,n){var a=e(n,t);return i(t,a)},nearest:function(t,n,i){var o=e(n,t),r=a(t,o,i.intersect);return r.length>1&&r.sort(function(t,e){var n=t.getArea(),i=e.getArea(),a=n-i;return 0===a&&(a=t._datasetIndex-e._datasetIndex),a}),r.slice(0,1)},x:function(t,i,a){var o=e(i,t),r=[],l=!1;return n(t,function(t){t.inXRange(o.x)&&r.push(t),t.inRange(o.x,o.y)&&(l=!0)}),a.intersect&&!l&&(r=[]),r},y:function(t,i,a){var o=e(i,t),r=[],l=!1;return n(t,function(t){t.inYRange(o.y)&&r.push(t),t.inRange(o.x,o.y)&&(l=!0)}),a.intersect&&!l&&(r=[]),r}}}}},{}],28:[function(t,e,n){\"use strict\";e.exports=function(){var t=function(t,e){return this.construct(t,e),this};return t.defaults={global:{responsive:!0,responsiveAnimationDuration:0,maintainAspectRatio:!0,events:[\"mousemove\",\"mouseout\",\"click\",\"touchstart\",\"touchmove\"],hover:{onHover:null,mode:\"nearest\",intersect:!0,animationDuration:400},onClick:null,defaultColor:\"rgba(0,0,0,0.1)\",defaultFontColor:\"#666\",defaultFontFamily:\"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",defaultFontSize:12,defaultFontStyle:\"normal\",showLines:!0,elements:{},legendCallback:function(t){var e=[];e.push('<ul class=\"'+t.id+'-legend\">');for(var n=0;n<t.data.datasets.length;n++)e.push('<li><span style=\"background-color:'+t.data.datasets[n].backgroundColor+'\"></span>'),t.data.datasets[n].label&&e.push(t.data.datasets[n].label),e.push(\"</li>\");return e.push(\"</ul>\"),e.join(\"\")}}},t.Chart=t,t}},{}],29:[function(t,e,n){\"use strict\";e.exports=function(t){function e(t,e){return i.where(t,function(t){return t.position===e})}function n(t,e){t.forEach(function(t,e){return t._tmpIndex_=e,t}),t.sort(function(t,n){var i=e?n:t,a=e?t:n;return i.weight===a.weight?i._tmpIndex_-a._tmpIndex_:i.weight-a.weight}),t.forEach(function(t){delete t._tmpIndex_})}var i=t.helpers;t.layoutService={defaults:{},addBox:function(t,e){t.boxes||(t.boxes=[]),e.fullWidth=e.fullWidth||!1,e.position=e.position||\"top\",e.weight=e.weight||0,t.boxes.push(e)},removeBox:function(t,e){var n=t.boxes?t.boxes.indexOf(e):-1;n!==-1&&t.boxes.splice(n,1)},configure:function(t,e,n){for(var i,a=[\"fullWidth\",\"position\",\"weight\"],o=a.length,r=0;r<o;++r)i=a[r],n.hasOwnProperty(i)&&(e[i]=n[i])},update:function(t,a,o){function r(t){var e,n=t.isHorizontal();n?(e=t.update(t.fullWidth?k:I,D),A-=e.height):(e=t.update(C,S),I-=e.width),P.push({horizontal:n,minSize:e,box:t})}function l(t){var e=i.findNextWhere(P,function(e){return e.box===t});if(e)if(t.isHorizontal()){var n={left:Math.max(L,_),right:Math.max(V,T),top:0,bottom:0};t.update(t.fullWidth?k:I,w/2,n)}else t.update(e.minSize.width,A)}function s(t){var e=i.findNextWhere(P,function(e){return e.box===t}),n={left:0,right:0,top:O,bottom:z};e&&t.update(e.minSize.width,A,n)}function u(t){t.isHorizontal()?(t.left=t.fullWidth?h:L,t.right=t.fullWidth?a-f:L+I,t.top=q,t.bottom=q+t.height,q=t.bottom):(t.left=H,t.right=H+t.width,t.top=O,t.bottom=O+A,H=t.right)}if(t){var d=t.options.layout,c=d?d.padding:null,h=0,f=0,g=0,p=0;isNaN(c)?(h=c.left||0,f=c.right||0,g=c.top||0,p=c.bottom||0):(h=c,f=c,g=c,p=c);var m=e(t.boxes,\"left\"),v=e(t.boxes,\"right\"),b=e(t.boxes,\"top\"),x=e(t.boxes,\"bottom\"),y=e(t.boxes,\"chartArea\");n(m,!0),n(v,!1),n(b,!0),n(x,!1);var k=a-h-f,w=o-g-p,M=k/2,S=w/2,C=(a-M)/(m.length+v.length),D=(o-S)/(b.length+x.length),I=k,A=w,P=[];i.each(m.concat(v,b,x),r);var _=0,T=0,F=0,R=0;i.each(b.concat(x),function(t){if(t.getPadding){var e=t.getPadding();_=Math.max(_,e.left),T=Math.max(T,e.right)}}),i.each(m.concat(v),function(t){if(t.getPadding){var e=t.getPadding();F=Math.max(F,e.top),R=Math.max(R,e.bottom)}});var L=h,V=f,O=g,z=p;i.each(m.concat(v),l),i.each(m,function(t){L+=t.width}),i.each(v,function(t){V+=t.width}),i.each(b.concat(x),l),i.each(b,function(t){O+=t.height}),i.each(x,function(t){z+=t.height}),i.each(m.concat(v),s),L=h,V=f,O=g,z=p,i.each(m,function(t){L+=t.width}),i.each(v,function(t){V+=t.width}),i.each(b,function(t){O+=t.height}),i.each(x,function(t){z+=t.height});var B=Math.max(_-L,0);L+=B,V+=Math.max(T-V,0);var W=Math.max(F-O,0);O+=W,z+=Math.max(R-z,0);var N=o-O-z,E=a-L-V;E===I&&N===A||(i.each(m,function(t){t.height=N}),i.each(v,function(t){t.height=N}),i.each(b,function(t){t.fullWidth||(t.width=E)}),i.each(x,function(t){t.fullWidth||(t.width=E)}),A=N,I=E);var H=h+B,q=g+W;i.each(m.concat(b),u),H+=I,q+=A,i.each(v,u),i.each(x,u),t.chartArea={left:L,top:O,right:L+I,bottom:O+A},i.each(y,function(e){e.left=t.chartArea.left,e.top=t.chartArea.top,e.right=t.chartArea.right,e.bottom=t.chartArea.bottom,e.update(I,A)})}}}}},{}],30:[function(t,e,n){\"use strict\";e.exports=function(t){var e=t.helpers;t.defaults.global.plugins={},t.plugins={_plugins:[],_cacheId:0,register:function(t){var e=this._plugins;[].concat(t).forEach(function(t){e.indexOf(t)===-1&&e.push(t)}),this._cacheId++},unregister:function(t){var e=this._plugins;[].concat(t).forEach(function(t){var n=e.indexOf(t);n!==-1&&e.splice(n,1)}),this._cacheId++},clear:function(){this._plugins=[],this._cacheId++},count:function(){return this._plugins.length},getAll:function(){return this._plugins},notify:function(t,e,n){var i,a,o,r,l,s=this.descriptors(t),u=s.length;for(i=0;i<u;++i)if(a=s[i],o=a.plugin,l=o[e],\"function\"==typeof l&&(r=[t].concat(n||[]),r.push(a.options),l.apply(o,r)===!1))return!1;return!0},descriptors:function(n){var i=n._plugins||(n._plugins={});if(i.id===this._cacheId)return i.descriptors;var a=[],o=[],r=n&&n.config||{},l=t.defaults.global.plugins,s=r.options&&r.options.plugins||{};return this._plugins.concat(r.plugins||[]).forEach(function(t){var n=a.indexOf(t);if(n===-1){var i=t.id,r=s[i];r!==!1&&(r===!0&&(r=e.clone(l[i])),a.push(t),o.push({plugin:t,options:r||{}}))}}),i.descriptors=o,i.id=this._cacheId,o}},t.pluginService=t.plugins,t.PluginBase=t.Element.extend({})}},{}],31:[function(t,e,n){\"use strict\";e.exports=function(t){function e(t,e,n){return i.isArray(e)?i.longestText(t,n,e):t.measureText(e).width}function n(e){var n=i.getValueOrDefault,a=t.defaults.global,o=n(e.fontSize,a.defaultFontSize),r=n(e.fontStyle,a.defaultFontStyle),l=n(e.fontFamily,a.defaultFontFamily);return{size:o,style:r,family:l,font:i.fontString(o,r,l)}}var i=t.helpers;t.defaults.scale={display:!0,position:\"left\",gridLines:{display:!0,color:\"rgba(0, 0, 0, 0.1)\",lineWidth:1,drawBorder:!0,drawOnChartArea:!0,drawTicks:!0,tickMarkLength:10,zeroLineWidth:1,zeroLineColor:\"rgba(0,0,0,0.25)\",zeroLineBorderDash:[],zeroLineBorderDashOffset:0,offsetGridLines:!1,borderDash:[],borderDashOffset:0},scaleLabel:{labelString:\"\",display:!1},ticks:{beginAtZero:!1,minRotation:0,maxRotation:50,mirror:!1,padding:0,reverse:!1,display:!0,autoSkip:!0,autoSkipPadding:0,labelOffset:0,callback:t.Ticks.formatters.values}},t.Scale=t.Element.extend({getPadding:function(){var t=this;return{left:t.paddingLeft||0,top:t.paddingTop||0,right:t.paddingRight||0,bottom:t.paddingBottom||0}},beforeUpdate:function(){i.callback(this.options.beforeUpdate,[this])},update:function(t,e,n){var a=this;return a.beforeUpdate(),a.maxWidth=t,a.maxHeight=e,a.margins=i.extend({left:0,right:0,top:0,bottom:0},n),a.longestTextCache=a.longestTextCache||{},a.beforeSetDimensions(),a.setDimensions(),a.afterSetDimensions(),a.beforeDataLimits(),a.determineDataLimits(),a.afterDataLimits(),a.beforeBuildTicks(),a.buildTicks(),a.afterBuildTicks(),a.beforeTickToLabelConversion(),a.convertTicksToLabels(),a.afterTickToLabelConversion(),a.beforeCalculateTickRotation(),a.calculateTickRotation(),a.afterCalculateTickRotation(),a.beforeFit(),a.fit(),a.afterFit(),a.afterUpdate(),a.minSize},afterUpdate:function(){i.callback(this.options.afterUpdate,[this])},beforeSetDimensions:function(){i.callback(this.options.beforeSetDimensions,[this])},setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0},afterSetDimensions:function(){i.callback(this.options.afterSetDimensions,[this])},beforeDataLimits:function(){i.callback(this.options.beforeDataLimits,[this])},determineDataLimits:i.noop,afterDataLimits:function(){i.callback(this.options.afterDataLimits,[this])},beforeBuildTicks:function(){i.callback(this.options.beforeBuildTicks,[this])},buildTicks:i.noop,afterBuildTicks:function(){i.callback(this.options.afterBuildTicks,[this])},beforeTickToLabelConversion:function(){i.callback(this.options.beforeTickToLabelConversion,[this])},convertTicksToLabels:function(){var t=this,e=t.options.ticks;t.ticks=t.ticks.map(e.userCallback||e.callback)},afterTickToLabelConversion:function(){i.callback(this.options.afterTickToLabelConversion,[this])},beforeCalculateTickRotation:function(){i.callback(this.options.beforeCalculateTickRotation,[this])},calculateTickRotation:function(){var t=this,e=t.ctx,a=t.options.ticks,o=n(a);e.font=o.font;var r=a.minRotation||0;if(t.options.display&&t.isHorizontal())for(var l,s,u=i.longestText(e,o.font,t.ticks,t.longestTextCache),d=u,c=t.getPixelForTick(1)-t.getPixelForTick(0)-6;d>c&&r<a.maxRotation;){var h=i.toRadians(r);if(l=Math.cos(h),s=Math.sin(h),s*u>t.maxHeight){r--;break}r++,d=l*u}t.labelRotation=r},afterCalculateTickRotation:function(){i.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){i.callback(this.options.beforeFit,[this])},fit:function(){var t=this,a=t.minSize={width:0,height:0},o=t.options,r=o.ticks,l=o.scaleLabel,s=o.gridLines,u=o.display,d=t.isHorizontal(),c=n(r),h=1.5*n(l).size,f=o.gridLines.tickMarkLength;if(d?a.width=t.isFullWidth()?t.maxWidth-t.margins.left-t.margins.right:t.maxWidth:a.width=u&&s.drawTicks?f:0,d?a.height=u&&s.drawTicks?f:0:a.height=t.maxHeight,l.display&&u&&(d?a.height+=h:a.width+=h),r.display&&u){var g=i.longestText(t.ctx,c.font,t.ticks,t.longestTextCache),p=i.numberOfLabelLines(t.ticks),m=.5*c.size;if(d){t.longestLabelWidth=g;var v=i.toRadians(t.labelRotation),b=Math.cos(v),x=Math.sin(v),y=x*g+c.size*p+m*p;a.height=Math.min(t.maxHeight,a.height+y),t.ctx.font=c.font;var k=t.ticks[0],w=e(t.ctx,k,c.font),M=t.ticks[t.ticks.length-1],S=e(t.ctx,M,c.font);0!==t.labelRotation?(t.paddingLeft=\"bottom\"===o.position?b*w+3:b*m+3,t.paddingRight=\"bottom\"===o.position?b*m+3:b*S+3):(t.paddingLeft=w/2+3,t.paddingRight=S/2+3)}else r.mirror?g=0:g+=t.options.ticks.padding,a.width=Math.min(t.maxWidth,a.width+g),t.paddingTop=c.size/2,t.paddingBottom=c.size/2}t.handleMargins(),t.width=a.width,t.height=a.height},handleMargins:function(){var t=this;t.margins&&(t.paddingLeft=Math.max(t.paddingLeft-t.margins.left,0),t.paddingTop=Math.max(t.paddingTop-t.margins.top,0),t.paddingRight=Math.max(t.paddingRight-t.margins.right,0),t.paddingBottom=Math.max(t.paddingBottom-t.margins.bottom,0))},afterFit:function(){i.callback(this.options.afterFit,[this])},isHorizontal:function(){return\"top\"===this.options.position||\"bottom\"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){return null===t||\"undefined\"==typeof t?NaN:\"number\"!=typeof t||isFinite(t)?\"object\"==typeof t?t instanceof Date||t.isValid?t:this.getRightValue(this.isHorizontal()?t.x:t.y):t:NaN},getLabelForIndex:i.noop,getPixelForValue:i.noop,getValueForPixel:i.noop,getPixelForTick:function(t,e){var n=this;if(n.isHorizontal()){var i=n.width-(n.paddingLeft+n.paddingRight),a=i/Math.max(n.ticks.length-(n.options.gridLines.offsetGridLines?0:1),1),o=a*t+n.paddingLeft;e&&(o+=a/2);var r=n.left+Math.round(o);return r+=n.isFullWidth()?n.margins.left:0}var l=n.height-(n.paddingTop+n.paddingBottom);return n.top+t*(l/(n.ticks.length-1))},getPixelForDecimal:function(t){var e=this;if(e.isHorizontal()){var n=e.width-(e.paddingLeft+e.paddingRight),i=n*t+e.paddingLeft,a=e.left+Math.round(i);return a+=e.isFullWidth()?e.margins.left:0}return e.top+t*e.height},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var t=this,e=t.min,n=t.max;return t.beginAtZero?0:e<0&&n<0?n:e>0&&n>0?e:0},draw:function(e){var a=this,o=a.options;if(o.display){var r,l,s=a.ctx,u=t.defaults.global,d=o.ticks,c=o.gridLines,h=o.scaleLabel,f=0!==a.labelRotation,g=d.autoSkip,p=a.isHorizontal();d.maxTicksLimit&&(l=d.maxTicksLimit);var m=i.getValueOrDefault(d.fontColor,u.defaultFontColor),v=n(d),b=c.drawTicks?c.tickMarkLength:0,x=i.getValueOrDefault(h.fontColor,u.defaultFontColor),y=n(h),k=i.toRadians(a.labelRotation),w=Math.cos(k),M=a.longestLabelWidth*w;s.fillStyle=m;var S=[];if(p){if(r=!1,(M+d.autoSkipPadding)*a.ticks.length>a.width-(a.paddingLeft+a.paddingRight)&&(r=1+Math.floor((M+d.autoSkipPadding)*a.ticks.length/(a.width-(a.paddingLeft+a.paddingRight)))),l&&a.ticks.length>l)for(;!r||a.ticks.length/(r||1)>l;)r||(r=1),r+=1;g||(r=!1)}var C=\"right\"===o.position?a.left:a.right-b,D=\"right\"===o.position?a.left+b:a.right,I=\"bottom\"===o.position?a.top:a.bottom-b,A=\"bottom\"===o.position?a.top+b:a.bottom;if(i.each(a.ticks,function(t,n){if(void 0!==t&&null!==t){var l=a.ticks.length===n+1,s=r>1&&n%r>0||n%r===0&&n+r>=a.ticks.length;if((!s||l)&&void 0!==t&&null!==t){var h,g,m,v;n===(\"undefined\"!=typeof a.zeroLineIndex?a.zeroLineIndex:0)?(h=c.zeroLineWidth,g=c.zeroLineColor,m=c.zeroLineBorderDash,v=c.zeroLineBorderDashOffset):(h=i.getValueAtIndexOrDefault(c.lineWidth,n),g=i.getValueAtIndexOrDefault(c.color,n),m=i.getValueOrDefault(c.borderDash,u.borderDash),v=i.getValueOrDefault(c.borderDashOffset,u.borderDashOffset));var x,y,w,M,P,_,T,F,R,L,V=\"middle\",O=\"middle\";if(p){\"bottom\"===o.position?(O=f?\"middle\":\"top\",V=f?\"right\":\"center\",L=a.top+b):(O=f?\"middle\":\"bottom\",V=f?\"left\":\"center\",L=a.bottom-b);var z=a.getPixelForTick(n)+i.aliasPixel(h);R=a.getPixelForTick(n,c.offsetGridLines)+d.labelOffset,x=w=P=T=z,y=I,M=A,_=e.top,F=e.bottom}else{var B,W=\"left\"===o.position,N=d.padding;d.mirror?(V=W?\"left\":\"right\",B=N):(V=W?\"right\":\"left\",\nB=b+N),R=W?a.right-B:a.left+B;var E=a.getPixelForTick(n);E+=i.aliasPixel(h),L=a.getPixelForTick(n,c.offsetGridLines),x=C,w=D,P=e.left,T=e.right,y=M=_=F=E}S.push({tx1:x,ty1:y,tx2:w,ty2:M,x1:P,y1:_,x2:T,y2:F,labelX:R,labelY:L,glWidth:h,glColor:g,glBorderDash:m,glBorderDashOffset:v,rotation:-1*k,label:t,textBaseline:O,textAlign:V})}}}),i.each(S,function(t){if(c.display&&(s.save(),s.lineWidth=t.glWidth,s.strokeStyle=t.glColor,s.setLineDash&&(s.setLineDash(t.glBorderDash),s.lineDashOffset=t.glBorderDashOffset),s.beginPath(),c.drawTicks&&(s.moveTo(t.tx1,t.ty1),s.lineTo(t.tx2,t.ty2)),c.drawOnChartArea&&(s.moveTo(t.x1,t.y1),s.lineTo(t.x2,t.y2)),s.stroke(),s.restore()),d.display){s.save(),s.translate(t.labelX,t.labelY),s.rotate(t.rotation),s.font=v.font,s.textBaseline=t.textBaseline,s.textAlign=t.textAlign;var e=t.label;if(i.isArray(e))for(var n=0,a=0;n<e.length;++n)s.fillText(\"\"+e[n],0,a),a+=1.5*v.size;else s.fillText(e,0,0);s.restore()}}),h.display){var P,_,T=0;if(p)P=a.left+(a.right-a.left)/2,_=\"bottom\"===o.position?a.bottom-y.size/2:a.top+y.size/2;else{var F=\"left\"===o.position;P=F?a.left+y.size/2:a.right-y.size/2,_=a.top+(a.bottom-a.top)/2,T=F?-.5*Math.PI:.5*Math.PI}s.save(),s.translate(P,_),s.rotate(T),s.textAlign=\"center\",s.textBaseline=\"middle\",s.fillStyle=x,s.font=y.font,s.fillText(h.labelString,0,0),s.restore()}if(c.drawBorder){s.lineWidth=i.getValueAtIndexOrDefault(c.lineWidth,0),s.strokeStyle=i.getValueAtIndexOrDefault(c.color,0);var R=a.left,L=a.right,V=a.top,O=a.bottom,z=i.aliasPixel(s.lineWidth);p?(V=O=\"top\"===o.position?a.bottom:a.top,V+=z,O+=z):(R=L=\"left\"===o.position?a.right:a.left,R+=z,L+=z),s.beginPath(),s.moveTo(R,V),s.lineTo(L,O),s.stroke()}}}})}},{}],32:[function(t,e,n){\"use strict\";e.exports=function(t){var e=t.helpers;t.scaleService={constructors:{},defaults:{},registerScaleType:function(t,n,i){this.constructors[t]=n,this.defaults[t]=e.clone(i)},getScaleConstructor:function(t){return this.constructors.hasOwnProperty(t)?this.constructors[t]:void 0},getScaleDefaults:function(n){return this.defaults.hasOwnProperty(n)?e.scaleMerge(t.defaults.scale,this.defaults[n]):{}},updateScaleDefaults:function(t,n){var i=this.defaults;i.hasOwnProperty(t)&&(i[t]=e.extend(i[t],n))},addScalesToLayout:function(n){e.each(n.scales,function(e){e.fullWidth=e.options.fullWidth,e.position=e.options.position,e.weight=e.options.weight,t.layoutService.addBox(n,e)})}}}},{}],33:[function(t,e,n){\"use strict\";e.exports=function(t){var e=t.helpers;t.Ticks={generators:{linear:function(t,n){var i,a=[];if(t.stepSize&&t.stepSize>0)i=t.stepSize;else{var o=e.niceNum(n.max-n.min,!1);i=e.niceNum(o/(t.maxTicks-1),!0)}var r=Math.floor(n.min/i)*i,l=Math.ceil(n.max/i)*i;t.min&&t.max&&t.stepSize&&e.almostWhole((t.max-t.min)/t.stepSize,i/1e3)&&(r=t.min,l=t.max);var s=(l-r)/i;s=e.almostEquals(s,Math.round(s),i/1e3)?Math.round(s):Math.ceil(s),a.push(void 0!==t.min?t.min:r);for(var u=1;u<s;++u)a.push(r+u*i);return a.push(void 0!==t.max?t.max:l),a},logarithmic:function(t,n){var i,a,o=[],r=e.getValueOrDefault,l=r(t.min,Math.pow(10,Math.floor(e.log10(n.min)))),s=Math.floor(e.log10(n.max)),u=Math.ceil(n.max/Math.pow(10,s));0===l?(i=Math.floor(e.log10(n.minNotZero)),a=Math.floor(n.minNotZero/Math.pow(10,i)),o.push(l),l=a*Math.pow(10,i)):(i=Math.floor(e.log10(l)),a=Math.floor(l/Math.pow(10,i)));do o.push(l),++a,10===a&&(a=1,++i),l=a*Math.pow(10,i);while(i<s||i===s&&a<u);var d=r(t.max,l);return o.push(d),o}},formatters:{values:function(t){return e.isArray(t)?t:\"\"+t},linear:function(t,n,i){var a=i.length>3?i[2]-i[1]:i[1]-i[0];Math.abs(a)>1&&t!==Math.floor(t)&&(a=t-Math.floor(t));var o=e.log10(Math.abs(a)),r=\"\";if(0!==t){var l=-1*Math.floor(o);l=Math.max(Math.min(l,20),0),r=t.toFixed(l)}else r=\"0\";return r},logarithmic:function(t,n,i){var a=t/Math.pow(10,Math.floor(e.log10(t)));return 0===t?\"0\":1===a||2===a||5===a||0===n||n===i.length-1?t.toExponential():\"\"}}}}},{}],34:[function(t,e,n){\"use strict\";e.exports=function(t){function e(t,e){var n=s.color(t);return n.alpha(e*n.alpha()).rgbaString()}function n(t,e){return e&&(s.isArray(e)?Array.prototype.push.apply(t,e):t.push(e)),t}function i(t){var e=t._xScale,n=t._yScale||t._scale,i=t._index,a=t._datasetIndex;return{xLabel:e?e.getLabelForIndex(i,a):\"\",yLabel:n?n.getLabelForIndex(i,a):\"\",index:i,datasetIndex:a,x:t._model.x,y:t._model.y}}function a(e){var n=t.defaults.global,i=s.getValueOrDefault;return{xPadding:e.xPadding,yPadding:e.yPadding,xAlign:e.xAlign,yAlign:e.yAlign,bodyFontColor:e.bodyFontColor,_bodyFontFamily:i(e.bodyFontFamily,n.defaultFontFamily),_bodyFontStyle:i(e.bodyFontStyle,n.defaultFontStyle),_bodyAlign:e.bodyAlign,bodyFontSize:i(e.bodyFontSize,n.defaultFontSize),bodySpacing:e.bodySpacing,titleFontColor:e.titleFontColor,_titleFontFamily:i(e.titleFontFamily,n.defaultFontFamily),_titleFontStyle:i(e.titleFontStyle,n.defaultFontStyle),titleFontSize:i(e.titleFontSize,n.defaultFontSize),_titleAlign:e.titleAlign,titleSpacing:e.titleSpacing,titleMarginBottom:e.titleMarginBottom,footerFontColor:e.footerFontColor,_footerFontFamily:i(e.footerFontFamily,n.defaultFontFamily),_footerFontStyle:i(e.footerFontStyle,n.defaultFontStyle),footerFontSize:i(e.footerFontSize,n.defaultFontSize),_footerAlign:e.footerAlign,footerSpacing:e.footerSpacing,footerMarginTop:e.footerMarginTop,caretSize:e.caretSize,cornerRadius:e.cornerRadius,backgroundColor:e.backgroundColor,opacity:0,legendColorBackground:e.multiKeyBackground,displayColors:e.displayColors,borderColor:e.borderColor,borderWidth:e.borderWidth}}function o(t,e){var n=t._chart.ctx,i=2*e.yPadding,a=0,o=e.body,r=o.reduce(function(t,e){return t+e.before.length+e.lines.length+e.after.length},0);r+=e.beforeBody.length+e.afterBody.length;var l=e.title.length,u=e.footer.length,d=e.titleFontSize,c=e.bodyFontSize,h=e.footerFontSize;i+=l*d,i+=l?(l-1)*e.titleSpacing:0,i+=l?e.titleMarginBottom:0,i+=r*c,i+=r?(r-1)*e.bodySpacing:0,i+=u?e.footerMarginTop:0,i+=u*h,i+=u?(u-1)*e.footerSpacing:0;var f=0,g=function(t){a=Math.max(a,n.measureText(t).width+f)};return n.font=s.fontString(d,e._titleFontStyle,e._titleFontFamily),s.each(e.title,g),n.font=s.fontString(c,e._bodyFontStyle,e._bodyFontFamily),s.each(e.beforeBody.concat(e.afterBody),g),f=e.displayColors?c+2:0,s.each(o,function(t){s.each(t.before,g),s.each(t.lines,g),s.each(t.after,g)}),f=0,n.font=s.fontString(h,e._footerFontStyle,e._footerFontFamily),s.each(e.footer,g),a+=2*e.xPadding,{width:a,height:i}}function r(t,e){var n=t._model,i=t._chart,a=t._chart.chartArea,o=\"center\",r=\"center\";n.y<e.height?r=\"top\":n.y>i.height-e.height&&(r=\"bottom\");var l,s,u,d,c,h=(a.left+a.right)/2,f=(a.top+a.bottom)/2;\"center\"===r?(l=function(t){return t<=h},s=function(t){return t>h}):(l=function(t){return t<=e.width/2},s=function(t){return t>=i.width-e.width/2}),u=function(t){return t+e.width>i.width},d=function(t){return t-e.width<0},c=function(t){return t<=f?\"top\":\"bottom\"},l(n.x)?(o=\"left\",u(n.x)&&(o=\"center\",r=c(n.y))):s(n.x)&&(o=\"right\",d(n.x)&&(o=\"center\",r=c(n.y)));var g=t._options;return{xAlign:g.xAlign?g.xAlign:o,yAlign:g.yAlign?g.yAlign:r}}function l(t,e,n){var i=t.x,a=t.y,o=t.caretSize,r=t.caretPadding,l=t.cornerRadius,s=n.xAlign,u=n.yAlign,d=o+r,c=l+r;return\"right\"===s?i-=e.width:\"center\"===s&&(i-=e.width/2),\"top\"===u?a+=d:a-=\"bottom\"===u?e.height+d:e.height/2,\"center\"===u?\"left\"===s?i+=d:\"right\"===s&&(i-=d):\"left\"===s?i-=c:\"right\"===s&&(i+=c),{x:i,y:a}}var s=t.helpers;t.defaults.global.tooltips={enabled:!0,custom:null,mode:\"nearest\",position:\"average\",intersect:!0,backgroundColor:\"rgba(0,0,0,0.8)\",titleFontStyle:\"bold\",titleSpacing:2,titleMarginBottom:6,titleFontColor:\"#fff\",titleAlign:\"left\",bodySpacing:2,bodyFontColor:\"#fff\",bodyAlign:\"left\",footerFontStyle:\"bold\",footerSpacing:2,footerMarginTop:6,footerFontColor:\"#fff\",footerAlign:\"left\",yPadding:6,xPadding:6,caretPadding:2,caretSize:5,cornerRadius:6,multiKeyBackground:\"#fff\",displayColors:!0,borderColor:\"rgba(0,0,0,0)\",borderWidth:0,callbacks:{beforeTitle:s.noop,title:function(t,e){var n=\"\",i=e.labels,a=i?i.length:0;if(t.length>0){var o=t[0];o.xLabel?n=o.xLabel:a>0&&o.index<a&&(n=i[o.index])}return n},afterTitle:s.noop,beforeBody:s.noop,beforeLabel:s.noop,label:function(t,e){var n=e.datasets[t.datasetIndex].label||\"\";return n&&(n+=\": \"),n+=t.yLabel},labelColor:function(t,e){var n=e.getDatasetMeta(t.datasetIndex),i=n.data[t.index],a=i._view;return{borderColor:a.borderColor,backgroundColor:a.backgroundColor}},afterLabel:s.noop,afterBody:s.noop,beforeFooter:s.noop,footer:s.noop,afterFooter:s.noop}},t.Tooltip=t.Element.extend({initialize:function(){this._model=a(this._options)},getTitle:function(){var t=this,e=t._options,i=e.callbacks,a=i.beforeTitle.apply(t,arguments),o=i.title.apply(t,arguments),r=i.afterTitle.apply(t,arguments),l=[];return l=n(l,a),l=n(l,o),l=n(l,r)},getBeforeBody:function(){var t=this._options.callbacks.beforeBody.apply(this,arguments);return s.isArray(t)?t:void 0!==t?[t]:[]},getBody:function(t,e){var i=this,a=i._options.callbacks,o=[];return s.each(t,function(t){var r={before:[],lines:[],after:[]};n(r.before,a.beforeLabel.call(i,t,e)),n(r.lines,a.label.call(i,t,e)),n(r.after,a.afterLabel.call(i,t,e)),o.push(r)}),o},getAfterBody:function(){var t=this._options.callbacks.afterBody.apply(this,arguments);return s.isArray(t)?t:void 0!==t?[t]:[]},getFooter:function(){var t=this,e=t._options.callbacks,i=e.beforeFooter.apply(t,arguments),a=e.footer.apply(t,arguments),o=e.afterFooter.apply(t,arguments),r=[];return r=n(r,i),r=n(r,a),r=n(r,o)},update:function(e){var n,u,d=this,c=d._options,h=d._model,f=d._model=a(c),g=d._active,p=d._data,m={xAlign:h.xAlign,yAlign:h.yAlign},v={x:h.x,y:h.y},b={width:h.width,height:h.height},x={x:h.caretX,y:h.caretY};if(g.length){f.opacity=1;var y=[];x=t.Tooltip.positioners[c.position](g,d._eventPosition);var k=[];for(n=0,u=g.length;n<u;++n)k.push(i(g[n]));c.filter&&(k=k.filter(function(t){return c.filter(t,p)})),c.itemSort&&(k=k.sort(function(t,e){return c.itemSort(t,e,p)})),s.each(k,function(t){y.push(c.callbacks.labelColor.call(d,t,d._chart))}),f.title=d.getTitle(k,p),f.beforeBody=d.getBeforeBody(k,p),f.body=d.getBody(k,p),f.afterBody=d.getAfterBody(k,p),f.footer=d.getFooter(k,p),f.x=Math.round(x.x),f.y=Math.round(x.y),f.caretPadding=c.caretPadding,f.labelColors=y,f.dataPoints=k,b=o(this,f),m=r(this,b),v=l(f,b,m)}else f.opacity=0;return f.xAlign=m.xAlign,f.yAlign=m.yAlign,f.x=v.x,f.y=v.y,f.width=b.width,f.height=b.height,f.caretX=x.x,f.caretY=x.y,d._model=f,e&&c.custom&&c.custom.call(d,f),d},drawCaret:function(t,e){var n=this._chart.ctx,i=this._view,a=this.getCaretPosition(t,e,i);n.lineTo(a.x1,a.y1),n.lineTo(a.x2,a.y2),n.lineTo(a.x3,a.y3)},getCaretPosition:function(t,e,n){var i,a,o,r,l,s,u=n.caretSize,d=n.cornerRadius,c=n.xAlign,h=n.yAlign,f=t.x,g=t.y,p=e.width,m=e.height;if(\"center\"===h)l=g+m/2,\"left\"===c?(i=f,a=i-u,o=i,r=l+u,s=l-u):(i=f+p,a=i+u,o=i,r=l-u,s=l+u);else if(\"left\"===c?(a=f+d+u,i=a-u,o=a+u):\"right\"===c?(a=f+p-d-u,i=a-u,o=a+u):(a=f+p/2,i=a-u,o=a+u),\"top\"===h)r=g,l=r-u,s=r;else{r=g+m,l=r+u,s=r;var v=o;o=i,i=v}return{x1:i,x2:a,x3:o,y1:r,y2:l,y3:s}},drawTitle:function(t,n,i,a){var o=n.title;if(o.length){i.textAlign=n._titleAlign,i.textBaseline=\"top\";var r=n.titleFontSize,l=n.titleSpacing;i.fillStyle=e(n.titleFontColor,a),i.font=s.fontString(r,n._titleFontStyle,n._titleFontFamily);var u,d;for(u=0,d=o.length;u<d;++u)i.fillText(o[u],t.x,t.y),t.y+=r+l,u+1===o.length&&(t.y+=n.titleMarginBottom-l)}},drawBody:function(t,n,i,a){var o=n.bodyFontSize,r=n.bodySpacing,l=n.body;i.textAlign=n._bodyAlign,i.textBaseline=\"top\";var u=e(n.bodyFontColor,a);i.fillStyle=u,i.font=s.fontString(o,n._bodyFontStyle,n._bodyFontFamily);var d=0,c=function(e){i.fillText(e,t.x+d,t.y),t.y+=o+r};s.each(n.beforeBody,c);var h=n.displayColors;d=h?o+2:0,s.each(l,function(r,l){s.each(r.before,c),s.each(r.lines,function(r){h&&(i.fillStyle=e(n.legendColorBackground,a),i.fillRect(t.x,t.y,o,o),i.strokeStyle=e(n.labelColors[l].borderColor,a),i.strokeRect(t.x,t.y,o,o),i.fillStyle=e(n.labelColors[l].backgroundColor,a),i.fillRect(t.x+1,t.y+1,o-2,o-2),i.fillStyle=u),c(r)}),s.each(r.after,c)}),d=0,s.each(n.afterBody,c),t.y-=r},drawFooter:function(t,n,i,a){var o=n.footer;o.length&&(t.y+=n.footerMarginTop,i.textAlign=n._footerAlign,i.textBaseline=\"top\",i.fillStyle=e(n.footerFontColor,a),i.font=s.fontString(n.footerFontSize,n._footerFontStyle,n._footerFontFamily),s.each(o,function(e){i.fillText(e,t.x,t.y),t.y+=n.footerFontSize+n.footerSpacing}))},drawBackground:function(t,n,i,a,o){i.fillStyle=e(n.backgroundColor,o),i.strokeStyle=e(n.borderColor,o),i.lineWidth=n.borderWidth;var r=n.xAlign,l=n.yAlign,s=t.x,u=t.y,d=a.width,c=a.height,h=n.cornerRadius;i.beginPath(),i.moveTo(s+h,u),\"top\"===l&&this.drawCaret(t,a),i.lineTo(s+d-h,u),i.quadraticCurveTo(s+d,u,s+d,u+h),\"center\"===l&&\"right\"===r&&this.drawCaret(t,a),i.lineTo(s+d,u+c-h),i.quadraticCurveTo(s+d,u+c,s+d-h,u+c),\"bottom\"===l&&this.drawCaret(t,a),i.lineTo(s+h,u+c),i.quadraticCurveTo(s,u+c,s,u+c-h),\"center\"===l&&\"left\"===r&&this.drawCaret(t,a),i.lineTo(s,u+h),i.quadraticCurveTo(s,u,s+h,u),i.closePath(),i.fill(),n.borderWidth>0&&i.stroke()},draw:function(){var t=this._chart.ctx,e=this._view;if(0!==e.opacity){var n={width:e.width,height:e.height},i={x:e.x,y:e.y},a=Math.abs(e.opacity<.001)?0:e.opacity,o=e.title.length||e.beforeBody.length||e.body.length||e.afterBody.length||e.footer.length;this._options.enabled&&o&&(this.drawBackground(i,e,t,n,a),i.x+=e.xPadding,i.y+=e.yPadding,this.drawTitle(i,e,t,a),this.drawBody(i,e,t,a),this.drawFooter(i,e,t,a))}},handleEvent:function(t){var e=this,n=e._options,i=!1;if(e._lastActive=e._lastActive||[],\"mouseout\"===t.type?e._active=[]:e._active=e._chart.getElementsAtEventForMode(t,n.mode,n),i=!s.arrayEquals(e._active,e._lastActive),!i)return!1;if(e._lastActive=e._active,n.enabled||n.custom){e._eventPosition={x:t.x,y:t.y};var a=e._model;e.update(!0),e.pivot(),i|=a.x!==e._model.x||a.y!==e._model.y}return i}}),t.Tooltip.positioners={average:function(t){if(!t.length)return!1;var e,n,i=0,a=0,o=0;for(e=0,n=t.length;e<n;++e){var r=t[e];if(r&&r.hasValue()){var l=r.tooltipPosition();i+=l.x,a+=l.y,++o}}return{x:Math.round(i/o),y:Math.round(a/o)}},nearest:function(t,e){var n,i,a,o=e.x,r=e.y,l=Number.POSITIVE_INFINITY;for(i=0,a=t.length;i<a;++i){var u=t[i];if(u&&u.hasValue()){var d=u.getCenterPoint(),c=s.distanceBetweenPoints(e,d);c<l&&(l=c,n=u)}}if(n){var h=n.tooltipPosition();o=h.x,r=h.y}return{x:o,y:r}}}}},{}],35:[function(t,e,n){\"use strict\";e.exports=function(t){var e=t.helpers,n=t.defaults.global;n.elements.arc={backgroundColor:n.defaultColor,borderColor:\"#fff\",borderWidth:2},t.elements.Arc=t.Element.extend({inLabelRange:function(t){var e=this._view;return!!e&&Math.pow(t-e.x,2)<Math.pow(e.radius+e.hoverRadius,2)},inRange:function(t,n){var i=this._view;if(i){for(var a=e.getAngleFromPoint(i,{x:t,y:n}),o=a.angle,r=a.distance,l=i.startAngle,s=i.endAngle;s<l;)s+=2*Math.PI;for(;o>s;)o-=2*Math.PI;for(;o<l;)o+=2*Math.PI;var u=o>=l&&o<=s,d=r>=i.innerRadius&&r<=i.outerRadius;return u&&d}return!1},getCenterPoint:function(){var t=this._view,e=(t.startAngle+t.endAngle)/2,n=(t.innerRadius+t.outerRadius)/2;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},getArea:function(){var t=this._view;return Math.PI*((t.endAngle-t.startAngle)/(2*Math.PI))*(Math.pow(t.outerRadius,2)-Math.pow(t.innerRadius,2))},tooltipPosition:function(){var t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,n=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},draw:function(){var t=this._chart.ctx,e=this._view,n=e.startAngle,i=e.endAngle;t.beginPath(),t.arc(e.x,e.y,e.outerRadius,n,i),t.arc(e.x,e.y,e.innerRadius,i,n,!0),t.closePath(),t.strokeStyle=e.borderColor,t.lineWidth=e.borderWidth,t.fillStyle=e.backgroundColor,t.fill(),t.lineJoin=\"bevel\",e.borderWidth&&t.stroke()}})}},{}],36:[function(t,e,n){\"use strict\";e.exports=function(t){var e=t.helpers,n=t.defaults.global;t.defaults.global.elements.line={tension:.4,backgroundColor:n.defaultColor,borderWidth:3,borderColor:n.defaultColor,borderCapStyle:\"butt\",borderDash:[],borderDashOffset:0,borderJoinStyle:\"miter\",capBezierPoints:!0,fill:!0},t.elements.Line=t.Element.extend({draw:function(){var t,i,a,o,r=this,l=r._view,s=r._chart.ctx,u=l.spanGaps,d=r._children.slice(),c=n.elements.line,h=-1;for(r._loop&&d.length&&d.push(d[0]),s.save(),s.lineCap=l.borderCapStyle||c.borderCapStyle,s.setLineDash&&s.setLineDash(l.borderDash||c.borderDash),s.lineDashOffset=l.borderDashOffset||c.borderDashOffset,s.lineJoin=l.borderJoinStyle||c.borderJoinStyle,s.lineWidth=l.borderWidth||c.borderWidth,s.strokeStyle=l.borderColor||n.defaultColor,s.beginPath(),h=-1,t=0;t<d.length;++t)i=d[t],a=e.previousItem(d,t),o=i._view,0===t?o.skip||(s.moveTo(o.x,o.y),h=t):(a=h===-1?a:d[h],o.skip||(h!==t-1&&!u||h===-1?s.moveTo(o.x,o.y):e.canvas.lineTo(s,a._view,i._view),h=t));s.stroke(),s.restore()}})}},{}],37:[function(t,e,n){\"use strict\";e.exports=function(t){function e(t){var e=this._view;return!!e&&Math.pow(t-e.x,2)<Math.pow(e.radius+e.hitRadius,2)}function n(t){var e=this._view;return!!e&&Math.pow(t-e.y,2)<Math.pow(e.radius+e.hitRadius,2)}var i=t.helpers,a=t.defaults.global,o=a.defaultColor;a.elements.point={radius:3,pointStyle:\"circle\",backgroundColor:o,borderWidth:1,borderColor:o,hitRadius:1,hoverRadius:4,hoverBorderWidth:1},t.elements.Point=t.Element.extend({inRange:function(t,e){var n=this._view;return!!n&&Math.pow(t-n.x,2)+Math.pow(e-n.y,2)<Math.pow(n.hitRadius+n.radius,2)},inLabelRange:e,inXRange:e,inYRange:n,getCenterPoint:function(){var t=this._view;return{x:t.x,y:t.y}},getArea:function(){return Math.PI*Math.pow(this._view.radius,2)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y,padding:t.radius+t.borderWidth}},draw:function(e){var n=this._view,r=this._model,l=this._chart.ctx,s=n.pointStyle,u=n.radius,d=n.x,c=n.y,h=t.helpers.color,f=1.01,g=0;n.skip||(l.strokeStyle=n.borderColor||o,l.lineWidth=i.getValueOrDefault(n.borderWidth,a.elements.point.borderWidth),l.fillStyle=n.backgroundColor||o,void 0!==e&&(r.x<e.left||e.right*f<r.x||r.y<e.top||e.bottom*f<r.y)&&(r.x<e.left?g=(d-r.x)/(e.left-r.x):e.right*f<r.x?g=(r.x-d)/(r.x-e.right):r.y<e.top?g=(c-r.y)/(e.top-r.y):e.bottom*f<r.y&&(g=(r.y-c)/(r.y-e.bottom)),g=Math.round(100*g)/100,l.strokeStyle=h(l.strokeStyle).alpha(g).rgbString(),l.fillStyle=h(l.fillStyle).alpha(g).rgbString()),t.canvasHelpers.drawPoint(l,s,u,d,c))}})}},{}],38:[function(t,e,n){\"use strict\";e.exports=function(t){function e(t){return void 0!==t._view.width}function n(t){var n,i,a,o,r=t._view;if(e(t)){var l=r.width/2;n=r.x-l,i=r.x+l,a=Math.min(r.y,r.base),o=Math.max(r.y,r.base)}else{var s=r.height/2;n=Math.min(r.x,r.base),i=Math.max(r.x,r.base),a=r.y-s,o=r.y+s}return{left:n,top:a,right:i,bottom:o}}var i=t.defaults.global;i.elements.rectangle={backgroundColor:i.defaultColor,borderWidth:0,borderColor:i.defaultColor,borderSkipped:\"bottom\"},t.elements.Rectangle=t.Element.extend({draw:function(){function t(t){return v[(x+t)%4]}var e,n,i,a,o,r,l,s=this._chart.ctx,u=this._view,d=u.borderWidth;if(u.horizontal?(e=u.base,n=u.x,i=u.y-u.height/2,a=u.y+u.height/2,o=n>e?1:-1,r=1,l=u.borderSkipped||\"left\"):(e=u.x-u.width/2,n=u.x+u.width/2,i=u.y,a=u.base,o=1,r=a>i?1:-1,l=u.borderSkipped||\"bottom\"),d){var c=Math.min(Math.abs(e-n),Math.abs(i-a));d=d>c?c:d;var h=d/2,f=e+(\"left\"!==l?h*o:0),g=n+(\"right\"!==l?-h*o:0),p=i+(\"top\"!==l?h*r:0),m=a+(\"bottom\"!==l?-h*r:0);f!==g&&(i=p,a=m),p!==m&&(e=f,n=g)}s.beginPath(),s.fillStyle=u.backgroundColor,s.strokeStyle=u.borderColor,s.lineWidth=d;var v=[[e,a],[e,i],[n,i],[n,a]],b=[\"bottom\",\"left\",\"top\",\"right\"],x=b.indexOf(l,0);x===-1&&(x=0);var y=t(0);s.moveTo(y[0],y[1]);for(var k=1;k<4;k++)y=t(k),s.lineTo(y[0],y[1]);s.fill(),d&&s.stroke()},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){var i=!1;if(this._view){var a=n(this);i=t>=a.left&&t<=a.right&&e>=a.top&&e<=a.bottom}return i},inLabelRange:function(t,i){var a=this;if(!a._view)return!1;var o=!1,r=n(a);return o=e(a)?t>=r.left&&t<=r.right:i>=r.top&&i<=r.bottom},inXRange:function(t){var e=n(this);return t>=e.left&&t<=e.right},inYRange:function(t){var e=n(this);return t>=e.top&&t<=e.bottom},getCenterPoint:function(){var t,n,i=this._view;return e(this)?(t=i.x,n=(i.y+i.base)/2):(t=(i.x+i.base)/2,n=i.y),{x:t,y:n}},getArea:function(){var t=this._view;return t.width*Math.abs(t.y-t.base)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}})}},{}],39:[function(t,e,n){\"use strict\";e.exports=function(t){function e(t,e){var n=s.getStyle(t,e),i=n&&n.match(/^(\\d+)(\\.\\d+)?px$/);return i?Number(i[1]):void 0}function n(t,n){var i=t.style,a=t.getAttribute(\"height\"),o=t.getAttribute(\"width\");if(t._chartjs={initial:{height:a,width:o,style:{display:i.display,height:i.height,width:i.width}}},i.display=i.display||\"block\",null===o||\"\"===o){var r=e(t,\"width\");void 0!==r&&(t.width=r)}if(null===a||\"\"===a)if(\"\"===t.style.height)t.height=t.width/(n.options.aspectRatio||2);else{var l=e(t,\"height\");void 0!==r&&(t.height=l)}return t}function i(t,e,n,i,a){return{type:t,chart:e,native:a||null,x:void 0!==n?n:null,y:void 0!==i?i:null}}function a(t,e){var n=u[t.type]||t.type,a=s.getRelativePosition(t,e);return i(n,e,a.x,a.y,t)}function o(t){var e=document.createElement(\"iframe\");return e.className=\"chartjs-hidden-iframe\",e.style.cssText=\"display:block;overflow:hidden;border:0;margin:0;top:0;left:0;bottom:0;right:0;height:100%;width:100%;position:absolute;pointer-events:none;z-index:-1;\",e.tabIndex=-1,s.addEvent(e,\"load\",function(){s.addEvent(e.contentWindow||e,\"resize\",t),t()}),e}function r(t,e,n){var a=t._chartjs={ticking:!1},r=function(){a.ticking||(a.ticking=!0,s.requestAnimFrame.call(window,function(){if(a.resizer)return a.ticking=!1,e(i(\"resize\",n))}))};a.resizer=o(r),t.insertBefore(a.resizer,t.firstChild)}function l(t){if(t&&t._chartjs){var e=t._chartjs.resizer;e&&(e.parentNode.removeChild(e),t._chartjs.resizer=null),delete t._chartjs}}var s=t.helpers,u={touchstart:\"mousedown\",touchmove:\"mousemove\",touchend:\"mouseup\",pointerenter:\"mouseenter\",pointerdown:\"mousedown\",pointermove:\"mousemove\",pointerup:\"mouseup\",pointerleave:\"mouseout\",pointerout:\"mouseout\"};return{acquireContext:function(t,e){\"string\"==typeof t?t=document.getElementById(t):t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas);var i=t&&t.getContext&&t.getContext(\"2d\");return i&&i.canvas===t?(n(t,e),i):null},releaseContext:function(t){var e=t.canvas;if(e._chartjs){var n=e._chartjs.initial;[\"height\",\"width\"].forEach(function(t){var i=n[t];void 0===i||null===i?e.removeAttribute(t):e.setAttribute(t,i)}),s.each(n.style||{},function(t,n){e.style[n]=t}),e.width=e.width,delete e._chartjs}},addEventListener:function(t,e,n){var i=t.canvas;if(\"resize\"===e)return void r(i.parentNode,n,t);var o=n._chartjs||(n._chartjs={}),l=o.proxies||(o.proxies={}),u=l[t.id+\"_\"+e]=function(e){n(a(e,t))};s.addEvent(i,e,u)},removeEventListener:function(t,e,n){var i=t.canvas;if(\"resize\"===e)return void l(i.parentNode,n);var a=n._chartjs||{},o=a.proxies||{},r=o[t.id+\"_\"+e];r&&s.removeEvent(i,e,r)}}}},{}],40:[function(t,e,n){\"use strict\";var i=t(39);e.exports=function(t){t.platform={acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},t.helpers.extend(t.platform,i(t))}},{39:39}],41:[function(t,e,n){\"use strict\";e.exports=function(t){function e(t,e,n){var i,a=t._model||{},o=a.fill;if(void 0===o&&(o=!!a.backgroundColor),o===!1||null===o)return!1;if(o===!0)return\"origin\";if(i=parseFloat(o,10),isFinite(i)&&Math.floor(i)===i)return\"-\"!==o[0]&&\"+\"!==o[0]||(i=e+i),!(i===e||i<0||i>=n)&&i;switch(o){case\"bottom\":return\"start\";case\"top\":return\"end\";case\"zero\":return\"origin\";case\"origin\":case\"start\":case\"end\":return o;default:return!1}}function n(t){var e,n=t.el._model||{},i=t.el._scale||{},a=t.fill,o=null;if(isFinite(a))return null;if(\"start\"===a?o=void 0===n.scaleBottom?i.bottom:n.scaleBottom:\"end\"===a?o=void 0===n.scaleTop?i.top:n.scaleTop:void 0!==n.scaleZero?o=n.scaleZero:i.getBasePosition?o=i.getBasePosition():i.getBasePixel&&(o=i.getBasePixel()),void 0!==o&&null!==o){if(void 0!==o.x&&void 0!==o.y)return o;if(\"number\"==typeof o&&isFinite(o))return e=i.isHorizontal(),{x:e?o:null,y:e?null:o}}return null}function i(t,e,n){var i,a=t[e],o=a.fill,r=[e];if(!n)return o;for(;o!==!1&&r.indexOf(o)===-1;){if(!isFinite(o))return o;if(i=t[o],!i)return!1;if(i.visible)return o;r.push(o),o=i.fill}return!1}function a(t){var e=t.fill,n=\"dataset\";return e===!1?null:(isFinite(e)||(n=\"boundary\"),d[n](t))}function o(t){return t&&!t.skip}function r(t,e,n,i,a){var o;if(i&&a){for(t.moveTo(e[0].x,e[0].y),o=1;o<i;++o)u.canvas.lineTo(t,e[o-1],e[o]);for(t.lineTo(n[a-1].x,n[a-1].y),o=a-1;o>0;--o)u.canvas.lineTo(t,n[o],n[o-1],!0)}}function l(t,e,n,i,a,l){var s,u,d,c,h,f,g,p=e.length,m=i.spanGaps,v=[],b=[],x=0,y=0;for(t.beginPath(),s=0,u=p+!!l;s<u;++s)d=s%p,c=e[d]._view,h=n(c,d,i),f=o(c),g=o(h),f&&g?(x=v.push(c),y=b.push(h)):x&&y&&(m?(f&&v.push(c),g&&b.push(h)):(r(t,v,b,x,y),x=y=0,v=[],b=[]));r(t,v,b,x,y),t.closePath(),t.fillStyle=a,t.fill()}t.defaults.global.plugins.filler={propagate:!0};var s=t.defaults,u=t.helpers,d={dataset:function(t){var e=t.fill,n=t.chart,i=n.getDatasetMeta(e),a=i&&n.isDatasetVisible(e),o=a&&i.dataset._children||[];return o.length?function(t,e){return o[e]._view||null}:null},boundary:function(t){var e=t.boundary,n=e?e.x:null,i=e?e.y:null;return function(t){return{x:null===n?t.x:n,y:null===i?t.y:i}}}};return{id:\"filler\",afterDatasetsUpdate:function(o,r){var l,s,u,d,c=(o.data.datasets||[]).length,h=r.propagate,f=[];for(s=0;s<c;++s)l=o.getDatasetMeta(s),u=l.dataset,d=null,u&&u._model&&u instanceof t.elements.Line&&(d={visible:o.isDatasetVisible(s),fill:e(u,s,c),chart:o,el:u}),l.$filler=d,f.push(d);for(s=0;s<c;++s)d=f[s],d&&(d.fill=i(f,s,h),d.boundary=n(d),d.mapper=a(d))},beforeDatasetDraw:function(t,e){var n=e.meta.$filler;if(n){var i=n.el,a=i._view,o=i._children||[],r=n.mapper,u=a.backgroundColor||s.global.defaultColor;r&&u&&o.length&&l(t.ctx,o,r,a,u,i._loop)}}}}},{}],42:[function(t,e,n){\"use strict\";e.exports=function(t){function e(t,e){return t.usePointStyle?e*Math.SQRT2:t.boxWidth}function n(e,n){var i=new t.Legend({ctx:e.ctx,options:n,chart:e});a.configure(e,i,n),a.addBox(e,i),e.legend=i}var i=t.helpers,a=t.layoutService,o=i.noop;return t.defaults.global.legend={display:!0,position:\"top\",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(t,e){var n=e.datasetIndex,i=this.chart,a=i.getDatasetMeta(n);a.hidden=null===a.hidden?!i.data.datasets[n].hidden:null,i.update()},onHover:null,labels:{boxWidth:40,padding:10,generateLabels:function(t){var e=t.data;return i.isArray(e.datasets)?e.datasets.map(function(e,n){return{text:e.label,fillStyle:i.isArray(e.backgroundColor)?e.backgroundColor[0]:e.backgroundColor,hidden:!t.isDatasetVisible(n),lineCap:e.borderCapStyle,lineDash:e.borderDash,lineDashOffset:e.borderDashOffset,lineJoin:e.borderJoinStyle,lineWidth:e.borderWidth,strokeStyle:e.borderColor,pointStyle:e.pointStyle,datasetIndex:n}},this):[]}}},t.Legend=t.Element.extend({initialize:function(t){i.extend(this,t),this.legendHitBoxes=[],this.doughnutMode=!1},beforeUpdate:o,update:function(t,e,n){var i=this;return i.beforeUpdate(),i.maxWidth=t,i.maxHeight=e,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:o,beforeSetDimensions:o,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:o,beforeBuildLabels:o,buildLabels:function(){var t=this,e=t.options.labels,n=e.generateLabels.call(t,t.chart);e.filter&&(n=n.filter(function(n){return e.filter(n,t.chart.data)})),t.options.reverse&&n.reverse(),t.legendItems=n},afterBuildLabels:o,beforeFit:o,fit:function(){var n=this,a=n.options,o=a.labels,r=a.display,l=n.ctx,s=t.defaults.global,u=i.getValueOrDefault,d=u(o.fontSize,s.defaultFontSize),c=u(o.fontStyle,s.defaultFontStyle),h=u(o.fontFamily,s.defaultFontFamily),f=i.fontString(d,c,h),g=n.legendHitBoxes=[],p=n.minSize,m=n.isHorizontal();if(m?(p.width=n.maxWidth,p.height=r?10:0):(p.width=r?10:0,p.height=n.maxHeight),r)if(l.font=f,m){var v=n.lineWidths=[0],b=n.legendItems.length?d+o.padding:0;l.textAlign=\"left\",l.textBaseline=\"top\",i.each(n.legendItems,function(t,i){var a=e(o,d),r=a+d/2+l.measureText(t.text).width;v[v.length-1]+r+o.padding>=n.width&&(b+=d+o.padding,v[v.length]=n.left),g[i]={left:0,top:0,width:r,height:d},v[v.length-1]+=r+o.padding}),p.height+=b}else{var x=o.padding,y=n.columnWidths=[],k=o.padding,w=0,M=0,S=d+x;i.each(n.legendItems,function(t,n){var i=e(o,d),a=i+d/2+l.measureText(t.text).width;M+S>p.height&&(k+=w+o.padding,y.push(w),w=0,M=0),w=Math.max(w,a),M+=S,g[n]={left:0,top:0,width:a,height:d}}),k+=w,y.push(w),p.width+=k}n.width=p.width,n.height=p.height},afterFit:o,isHorizontal:function(){return\"top\"===this.options.position||\"bottom\"===this.options.position},draw:function(){var n=this,a=n.options,o=a.labels,r=t.defaults.global,l=r.elements.line,s=n.width,u=n.lineWidths;if(a.display){var d,c=n.ctx,h=i.getValueOrDefault,f=h(o.fontColor,r.defaultFontColor),g=h(o.fontSize,r.defaultFontSize),p=h(o.fontStyle,r.defaultFontStyle),m=h(o.fontFamily,r.defaultFontFamily),v=i.fontString(g,p,m);c.textAlign=\"left\",c.textBaseline=\"top\",c.lineWidth=.5,c.strokeStyle=f,c.fillStyle=f,c.font=v;var b=e(o,g),x=n.legendHitBoxes,y=function(e,n,i){if(!(isNaN(b)||b<=0)){c.save(),c.fillStyle=h(i.fillStyle,r.defaultColor),c.lineCap=h(i.lineCap,l.borderCapStyle),c.lineDashOffset=h(i.lineDashOffset,l.borderDashOffset),c.lineJoin=h(i.lineJoin,l.borderJoinStyle),c.lineWidth=h(i.lineWidth,l.borderWidth),c.strokeStyle=h(i.strokeStyle,r.defaultColor);var o=0===h(i.lineWidth,l.borderWidth);if(c.setLineDash&&c.setLineDash(h(i.lineDash,l.borderDash)),a.labels&&a.labels.usePointStyle){var s=g*Math.SQRT2/2,u=s/Math.SQRT2,d=e+u,f=n+u;t.canvasHelpers.drawPoint(c,i.pointStyle,s,d,f)}else o||c.strokeRect(e,n,b,g),c.fillRect(e,n,b,g);c.restore()}},k=function(t,e,n,i){c.fillText(n.text,b+g/2+t,e),n.hidden&&(c.beginPath(),c.lineWidth=2,c.moveTo(b+g/2+t,e+g/2),c.lineTo(b+g/2+t+i,e+g/2),c.stroke())},w=n.isHorizontal();d=w?{x:n.left+(s-u[0])/2,y:n.top+o.padding,line:0}:{x:n.left+o.padding,y:n.top+o.padding,line:0};var M=g+o.padding;i.each(n.legendItems,function(t,e){var i=c.measureText(t.text).width,a=b+g/2+i,r=d.x,l=d.y;w?r+a>=s&&(l=d.y+=M,d.line++,r=d.x=n.left+(s-u[d.line])/2):l+M>n.bottom&&(r=d.x=r+n.columnWidths[d.line]+o.padding,l=d.y=n.top+o.padding,d.line++),y(r,l,t),x[e].left=r,x[e].top=l,k(r,l,t,i),w?d.x+=a+o.padding:d.y+=M})}},handleEvent:function(t){var e=this,n=e.options,i=\"mouseup\"===t.type?\"click\":t.type,a=!1;if(\"mousemove\"===i){if(!n.onHover)return}else{if(\"click\"!==i)return;if(!n.onClick)return}var o=t.x,r=t.y;if(o>=e.left&&o<=e.right&&r>=e.top&&r<=e.bottom)for(var l=e.legendHitBoxes,s=0;s<l.length;++s){var u=l[s];if(o>=u.left&&o<=u.left+u.width&&r>=u.top&&r<=u.top+u.height){if(\"click\"===i){n.onClick.call(e,t.native,e.legendItems[s]),a=!0;break}if(\"mousemove\"===i){n.onHover.call(e,t.native,e.legendItems[s]),a=!0;break}}}return a}}),{id:\"legend\",beforeInit:function(t){var e=t.options.legend;e&&n(t,e)},beforeUpdate:function(e){var o=e.options.legend,r=e.legend;o?(o=i.configMerge(t.defaults.global.legend,o),r?(a.configure(e,r,o),r.options=o):n(e,o)):r&&(a.removeBox(e,r),delete e.legend)},afterEvent:function(t,e){var n=t.legend;n&&n.handleEvent(e)}}}},{}],43:[function(t,e,n){\"use strict\";e.exports=function(t){function e(e,n){var a=new t.Title({ctx:e.ctx,options:n,chart:e});i.configure(e,a,n),i.addBox(e,a),e.titleBlock=a}var n=t.helpers,i=t.layoutService,a=n.noop;return t.defaults.global.title={display:!1,position:\"top\",fullWidth:!0,weight:2e3,fontStyle:\"bold\",padding:10,text:\"\"},t.Title=t.Element.extend({initialize:function(t){var e=this;n.extend(e,t),e.legendHitBoxes=[];\n},beforeUpdate:a,update:function(t,e,n){var i=this;return i.beforeUpdate(),i.maxWidth=t,i.maxHeight=e,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:a,beforeSetDimensions:a,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:a,beforeBuildLabels:a,buildLabels:a,afterBuildLabels:a,beforeFit:a,fit:function(){var e=this,i=n.getValueOrDefault,a=e.options,o=t.defaults.global,r=a.display,l=i(a.fontSize,o.defaultFontSize),s=e.minSize;e.isHorizontal()?(s.width=e.maxWidth,s.height=r?l+2*a.padding:0):(s.width=r?l+2*a.padding:0,s.height=e.maxHeight),e.width=s.width,e.height=s.height},afterFit:a,isHorizontal:function(){var t=this.options.position;return\"top\"===t||\"bottom\"===t},draw:function(){var e=this,i=e.ctx,a=n.getValueOrDefault,o=e.options,r=t.defaults.global;if(o.display){var l,s,u,d=a(o.fontSize,r.defaultFontSize),c=a(o.fontStyle,r.defaultFontStyle),h=a(o.fontFamily,r.defaultFontFamily),f=n.fontString(d,c,h),g=0,p=e.top,m=e.left,v=e.bottom,b=e.right;i.fillStyle=a(o.fontColor,r.defaultFontColor),i.font=f,e.isHorizontal()?(l=m+(b-m)/2,s=p+(v-p)/2,u=b-m):(l=\"left\"===o.position?m+d/2:b-d/2,s=p+(v-p)/2,u=v-p,g=Math.PI*(\"left\"===o.position?-.5:.5)),i.save(),i.translate(l,s),i.rotate(g),i.textAlign=\"center\",i.textBaseline=\"middle\",i.fillText(o.text,0,0,u),i.restore()}}}),{id:\"title\",beforeInit:function(t){var n=t.options.title;n&&e(t,n)},beforeUpdate:function(a){var o=a.options.title,r=a.titleBlock;o?(o=n.configMerge(t.defaults.global.title,o),r?(i.configure(a,r,o),r.options=o):e(a,o)):r&&(t.layoutService.removeBox(a,r),delete a.titleBlock)}}}},{}],44:[function(t,e,n){\"use strict\";e.exports=function(t){var e=t.helpers,n={position:\"bottom\"},i=t.Scale.extend({getLabels:function(){var t=this.chart.data;return(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels},determineDataLimits:function(){var t=this,n=t.getLabels();t.minIndex=0,t.maxIndex=n.length-1;var i;void 0!==t.options.ticks.min&&(i=e.indexOf(n,t.options.ticks.min),t.minIndex=i!==-1?i:t.minIndex),void 0!==t.options.ticks.max&&(i=e.indexOf(n,t.options.ticks.max),t.maxIndex=i!==-1?i:t.maxIndex),t.min=n[t.minIndex],t.max=n[t.maxIndex]},buildTicks:function(){var t=this,e=t.getLabels();t.ticks=0===t.minIndex&&t.maxIndex===e.length-1?e:e.slice(t.minIndex,t.maxIndex+1)},getLabelForIndex:function(t,e){var n=this,i=n.chart.data,a=n.isHorizontal();return i.yLabels&&!a?n.getRightValue(i.datasets[e].data[t]):n.ticks[t-n.minIndex]},getPixelForValue:function(t,e,n,i){var a,o=this,r=Math.max(o.maxIndex+1-o.minIndex-(o.options.gridLines.offsetGridLines?0:1),1);if(void 0!==t&&null!==t&&(a=o.isHorizontal()?t.x:t.y),void 0!==a||void 0!==t&&isNaN(e)){var l=o.getLabels();t=a||t;var s=l.indexOf(t);e=s!==-1?s:e}if(o.isHorizontal()){var u=o.width/r,d=u*(e-o.minIndex);return(o.options.gridLines.offsetGridLines&&i||o.maxIndex===o.minIndex&&i)&&(d+=u/2),o.left+Math.round(d)}var c=o.height/r,h=c*(e-o.minIndex);return o.options.gridLines.offsetGridLines&&i&&(h+=c/2),o.top+Math.round(h)},getPixelForTick:function(t,e){return this.getPixelForValue(this.ticks[t],t+this.minIndex,null,e)},getValueForPixel:function(t){var e,n=this,i=Math.max(n.ticks.length-(n.options.gridLines.offsetGridLines?0:1),1),a=n.isHorizontal(),o=(a?n.width:n.height)/i;return t-=a?n.left:n.top,n.options.gridLines.offsetGridLines&&(t-=o/2),e=t<=0?0:Math.round(t/o)},getBasePixel:function(){return this.bottom}});t.scaleService.registerScaleType(\"category\",i,n)}},{}],45:[function(t,e,n){\"use strict\";e.exports=function(t){var e=t.helpers,n={position:\"left\",ticks:{callback:t.Ticks.formatters.linear}},i=t.LinearScaleBase.extend({determineDataLimits:function(){function t(t){return l?t.xAxisID===n.id:t.yAxisID===n.id}var n=this,i=n.options,a=n.chart,o=a.data,r=o.datasets,l=n.isHorizontal(),s=0,u=1;n.min=null,n.max=null;var d=i.stacked;if(void 0===d&&e.each(r,function(e,n){if(!d){var i=a.getDatasetMeta(n);a.isDatasetVisible(n)&&t(i)&&void 0!==i.stack&&(d=!0)}}),i.stacked||d){var c={};e.each(r,function(o,r){var l=a.getDatasetMeta(r),s=[l.type,void 0===i.stacked&&void 0===l.stack?r:\"\",l.stack].join(\".\");void 0===c[s]&&(c[s]={positiveValues:[],negativeValues:[]});var u=c[s].positiveValues,d=c[s].negativeValues;a.isDatasetVisible(r)&&t(l)&&e.each(o.data,function(t,e){var a=+n.getRightValue(t);isNaN(a)||l.data[e].hidden||(u[e]=u[e]||0,d[e]=d[e]||0,i.relativePoints?u[e]=100:a<0?d[e]+=a:u[e]+=a)})}),e.each(c,function(t){var i=t.positiveValues.concat(t.negativeValues),a=e.min(i),o=e.max(i);n.min=null===n.min?a:Math.min(n.min,a),n.max=null===n.max?o:Math.max(n.max,o)})}else e.each(r,function(i,o){var r=a.getDatasetMeta(o);a.isDatasetVisible(o)&&t(r)&&e.each(i.data,function(t,e){var i=+n.getRightValue(t);isNaN(i)||r.data[e].hidden||(null===n.min?n.min=i:i<n.min&&(n.min=i),null===n.max?n.max=i:i>n.max&&(n.max=i))})});n.min=isFinite(n.min)?n.min:s,n.max=isFinite(n.max)?n.max:u,this.handleTickRangeOptions()},getTickLimit:function(){var n,i=this,a=i.options.ticks;if(i.isHorizontal())n=Math.min(a.maxTicksLimit?a.maxTicksLimit:11,Math.ceil(i.width/50));else{var o=e.getValueOrDefault(a.fontSize,t.defaults.global.defaultFontSize);n=Math.min(a.maxTicksLimit?a.maxTicksLimit:11,Math.ceil(i.height/(2*o)))}return n},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForValue:function(t){var e,n=this,i=n.start,a=+n.getRightValue(t),o=n.end-i;return n.isHorizontal()?(e=n.left+n.width/o*(a-i),Math.round(e)):(e=n.bottom-n.height/o*(a-i),Math.round(e))},getValueForPixel:function(t){var e=this,n=e.isHorizontal(),i=n?e.width:e.height,a=(n?t-e.left:e.bottom-t)/i;return e.start+(e.end-e.start)*a},getPixelForTick:function(t){return this.getPixelForValue(this.ticksAsNumbers[t])}});t.scaleService.registerScaleType(\"linear\",i,n)}},{}],46:[function(t,e,n){\"use strict\";e.exports=function(t){var e=t.helpers,n=e.noop;t.LinearScaleBase=t.Scale.extend({handleTickRangeOptions:function(){var t=this,n=t.options,i=n.ticks;if(i.beginAtZero){var a=e.sign(t.min),o=e.sign(t.max);a<0&&o<0?t.max=0:a>0&&o>0&&(t.min=0)}void 0!==i.min?t.min=i.min:void 0!==i.suggestedMin&&(null===t.min?t.min=i.suggestedMin:t.min=Math.min(t.min,i.suggestedMin)),void 0!==i.max?t.max=i.max:void 0!==i.suggestedMax&&(null===t.max?t.max=i.suggestedMax:t.max=Math.max(t.max,i.suggestedMax)),t.min===t.max&&(t.max++,i.beginAtZero||t.min--)},getTickLimit:n,handleDirectionalChanges:n,buildTicks:function(){var n=this,i=n.options,a=i.ticks,o=n.getTickLimit();o=Math.max(2,o);var r={maxTicks:o,min:a.min,max:a.max,stepSize:e.getValueOrDefault(a.fixedStepSize,a.stepSize)},l=n.ticks=t.Ticks.generators.linear(r,n);n.handleDirectionalChanges(),n.max=e.max(l),n.min=e.min(l),a.reverse?(l.reverse(),n.start=n.max,n.end=n.min):(n.start=n.min,n.end=n.max)},convertTicksToLabels:function(){var e=this;e.ticksAsNumbers=e.ticks.slice(),e.zeroLineIndex=e.ticks.indexOf(0),t.Scale.prototype.convertTicksToLabels.call(e)}})}},{}],47:[function(t,e,n){\"use strict\";e.exports=function(t){var e=t.helpers,n={position:\"left\",ticks:{callback:t.Ticks.formatters.logarithmic}},i=t.Scale.extend({determineDataLimits:function(){function t(t){return u?t.xAxisID===n.id:t.yAxisID===n.id}var n=this,i=n.options,a=i.ticks,o=n.chart,r=o.data,l=r.datasets,s=e.getValueOrDefault,u=n.isHorizontal();n.min=null,n.max=null,n.minNotZero=null;var d=i.stacked;if(void 0===d&&e.each(l,function(e,n){if(!d){var i=o.getDatasetMeta(n);o.isDatasetVisible(n)&&t(i)&&void 0!==i.stack&&(d=!0)}}),i.stacked||d){var c={};e.each(l,function(a,r){var l=o.getDatasetMeta(r),s=[l.type,void 0===i.stacked&&void 0===l.stack?r:\"\",l.stack].join(\".\");o.isDatasetVisible(r)&&t(l)&&(void 0===c[s]&&(c[s]=[]),e.each(a.data,function(t,e){var a=c[s],o=+n.getRightValue(t);isNaN(o)||l.data[e].hidden||(a[e]=a[e]||0,i.relativePoints?a[e]=100:a[e]+=o)}))}),e.each(c,function(t){var i=e.min(t),a=e.max(t);n.min=null===n.min?i:Math.min(n.min,i),n.max=null===n.max?a:Math.max(n.max,a)})}else e.each(l,function(i,a){var r=o.getDatasetMeta(a);o.isDatasetVisible(a)&&t(r)&&e.each(i.data,function(t,e){var i=+n.getRightValue(t);isNaN(i)||r.data[e].hidden||(null===n.min?n.min=i:i<n.min&&(n.min=i),null===n.max?n.max=i:i>n.max&&(n.max=i),0!==i&&(null===n.minNotZero||i<n.minNotZero)&&(n.minNotZero=i))})});n.min=s(a.min,n.min),n.max=s(a.max,n.max),n.min===n.max&&(0!==n.min&&null!==n.min?(n.min=Math.pow(10,Math.floor(e.log10(n.min))-1),n.max=Math.pow(10,Math.floor(e.log10(n.max))+1)):(n.min=1,n.max=10))},buildTicks:function(){var n=this,i=n.options,a=i.ticks,o={min:a.min,max:a.max},r=n.ticks=t.Ticks.generators.logarithmic(o,n);n.isHorizontal()||r.reverse(),n.max=e.max(r),n.min=e.min(r),a.reverse?(r.reverse(),n.start=n.max,n.end=n.min):(n.start=n.min,n.end=n.max)},convertTicksToLabels:function(){this.tickValues=this.ticks.slice(),t.Scale.prototype.convertTicksToLabels.call(this)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForTick:function(t){return this.getPixelForValue(this.tickValues[t])},getPixelForValue:function(t){var n,i,a,o=this,r=o.start,l=+o.getRightValue(t),s=o.options,u=s.ticks;return o.isHorizontal()?(a=e.log10(o.end)-e.log10(r),0===l?i=o.left:(n=o.width,i=o.left+n/a*(e.log10(l)-e.log10(r)))):(n=o.height,0!==r||u.reverse?0===o.end&&u.reverse?(a=e.log10(o.start)-e.log10(o.minNotZero),i=l===o.end?o.top:l===o.minNotZero?o.top+.02*n:o.top+.02*n+.98*n/a*(e.log10(l)-e.log10(o.minNotZero))):0===l?i=u.reverse?o.top:o.bottom:(a=e.log10(o.end)-e.log10(r),n=o.height,i=o.bottom-n/a*(e.log10(l)-e.log10(r))):(a=e.log10(o.end)-e.log10(o.minNotZero),i=l===r?o.bottom:l===o.minNotZero?o.bottom-.02*n:o.bottom-.02*n-.98*n/a*(e.log10(l)-e.log10(o.minNotZero)))),i},getValueForPixel:function(t){var n,i,a=this,o=e.log10(a.end)-e.log10(a.start);return a.isHorizontal()?(i=a.width,n=a.start*Math.pow(10,(t-a.left)*o/i)):(i=a.height,n=Math.pow(10,(a.bottom-t)*o/i)/a.start),n}});t.scaleService.registerScaleType(\"logarithmic\",i,n)}},{}],48:[function(t,e,n){\"use strict\";e.exports=function(t){function e(t){var e=t.options;return e.angleLines.display||e.pointLabels.display?t.chart.data.labels.length:0}function n(t){var e=t.options.pointLabels,n=f.getValueOrDefault(e.fontSize,g.defaultFontSize),i=f.getValueOrDefault(e.fontStyle,g.defaultFontStyle),a=f.getValueOrDefault(e.fontFamily,g.defaultFontFamily),o=f.fontString(n,i,a);return{size:n,style:i,family:a,font:o}}function i(t,e,n){return f.isArray(n)?{w:f.longestText(t,t.font,n),h:n.length*e+1.5*(n.length-1)*e}:{w:t.measureText(n).width,h:e}}function a(t,e,n,i,a){return t===i||t===a?{start:e-n/2,end:e+n/2}:t<i||t>a?{start:e-n-5,end:e}:{start:e,end:e+n+5}}function o(t){var o,r,l,s=n(t),u=Math.min(t.height/2,t.width/2),d={r:t.width,l:0,t:t.height,b:0},c={};t.ctx.font=s.font,t._pointLabelSizes=[];var h=e(t);for(o=0;o<h;o++){l=t.getPointPosition(o,u),r=i(t.ctx,s.size,t.pointLabels[o]||\"\"),t._pointLabelSizes[o]=r;var g=t.getIndexAngle(o),p=f.toDegrees(g)%360,m=a(p,l.x,r.w,0,180),v=a(p,l.y,r.h,90,270);m.start<d.l&&(d.l=m.start,c.l=g),m.end>d.r&&(d.r=m.end,c.r=g),v.start<d.t&&(d.t=v.start,c.t=g),v.end>d.b&&(d.b=v.end,c.b=g)}t.setReductions(u,d,c)}function r(t){var e=Math.min(t.height/2,t.width/2);t.drawingArea=Math.round(e),t.setCenterPoint(0,0,0,0)}function l(t){return 0===t||180===t?\"center\":t<180?\"left\":\"right\"}function s(t,e,n,i){if(f.isArray(e))for(var a=n.y,o=1.5*i,r=0;r<e.length;++r)t.fillText(e[r],n.x,a),a+=o;else t.fillText(e,n.x,n.y)}function u(t,e,n){90===t||270===t?n.y-=e.h/2:(t>270||t<90)&&(n.y-=e.h)}function d(t){var i=t.ctx,a=f.getValueOrDefault,o=t.options,r=o.angleLines,d=o.pointLabels;i.lineWidth=r.lineWidth,i.strokeStyle=r.color;var c=t.getDistanceFromCenterForValue(o.reverse?t.min:t.max),h=n(t);i.textBaseline=\"top\";for(var p=e(t)-1;p>=0;p--){if(r.display){var m=t.getPointPosition(p,c);i.beginPath(),i.moveTo(t.xCenter,t.yCenter),i.lineTo(m.x,m.y),i.stroke(),i.closePath()}if(d.display){var v=t.getPointPosition(p,c+5),b=a(d.fontColor,g.defaultFontColor);i.font=h.font,i.fillStyle=b;var x=t.getIndexAngle(p),y=f.toDegrees(x);i.textAlign=l(y),u(y,t._pointLabelSizes[p],v),s(i,t.pointLabels[p]||\"\",v,h.size)}}}function c(t,n,i,a){var o=t.ctx;if(o.strokeStyle=f.getValueAtIndexOrDefault(n.color,a-1),o.lineWidth=f.getValueAtIndexOrDefault(n.lineWidth,a-1),t.options.gridLines.circular)o.beginPath(),o.arc(t.xCenter,t.yCenter,i,0,2*Math.PI),o.closePath(),o.stroke();else{var r=e(t);if(0===r)return;o.beginPath();var l=t.getPointPosition(0,i);o.moveTo(l.x,l.y);for(var s=1;s<r;s++)l=t.getPointPosition(s,i),o.lineTo(l.x,l.y);o.closePath(),o.stroke()}}function h(t){return f.isNumber(t)?t:0}var f=t.helpers,g=t.defaults.global,p={display:!0,animate:!0,position:\"chartArea\",angleLines:{display:!0,color:\"rgba(0, 0, 0, 0.1)\",lineWidth:1},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:\"rgba(255,255,255,0.75)\",backdropPaddingY:2,backdropPaddingX:2,callback:t.Ticks.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(t){return t}}},m=t.LinearScaleBase.extend({setDimensions:function(){var t=this,e=t.options,n=e.ticks;t.width=t.maxWidth,t.height=t.maxHeight,t.xCenter=Math.round(t.width/2),t.yCenter=Math.round(t.height/2);var i=f.min([t.height,t.width]),a=f.getValueOrDefault(n.fontSize,g.defaultFontSize);t.drawingArea=e.display?i/2-(a/2+n.backdropPaddingY):i/2},determineDataLimits:function(){var t=this,e=t.chart,n=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;f.each(e.data.datasets,function(a,o){if(e.isDatasetVisible(o)){var r=e.getDatasetMeta(o);f.each(a.data,function(e,a){var o=+t.getRightValue(e);isNaN(o)||r.data[a].hidden||(n=Math.min(o,n),i=Math.max(o,i))})}}),t.min=n===Number.POSITIVE_INFINITY?0:n,t.max=i===Number.NEGATIVE_INFINITY?0:i,t.handleTickRangeOptions()},getTickLimit:function(){var t=this.options.ticks,e=f.getValueOrDefault(t.fontSize,g.defaultFontSize);return Math.min(t.maxTicksLimit?t.maxTicksLimit:11,Math.ceil(this.drawingArea/(1.5*e)))},convertTicksToLabels:function(){var e=this;t.LinearScaleBase.prototype.convertTicksToLabels.call(e),e.pointLabels=e.chart.data.labels.map(e.options.pointLabels.callback,e)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},fit:function(){this.options.pointLabels.display?o(this):r(this)},setReductions:function(t,e,n){var i=this,a=e.l/Math.sin(n.l),o=Math.max(e.r-i.width,0)/Math.sin(n.r),r=-e.t/Math.cos(n.t),l=-Math.max(e.b-i.height,0)/Math.cos(n.b);a=h(a),o=h(o),r=h(r),l=h(l),i.drawingArea=Math.min(Math.round(t-(a+o)/2),Math.round(t-(r+l)/2)),i.setCenterPoint(a,o,r,l)},setCenterPoint:function(t,e,n,i){var a=this,o=a.width-e-a.drawingArea,r=t+a.drawingArea,l=n+a.drawingArea,s=a.height-i-a.drawingArea;a.xCenter=Math.round((r+o)/2+a.left),a.yCenter=Math.round((l+s)/2+a.top)},getIndexAngle:function(t){var n=2*Math.PI/e(this),i=this.chart.options&&this.chart.options.startAngle?this.chart.options.startAngle:0,a=i*Math.PI*2/360;return t*n+a},getDistanceFromCenterForValue:function(t){var e=this;if(null===t)return 0;var n=e.drawingArea/(e.max-e.min);return e.options.reverse?(e.max-t)*n:(t-e.min)*n},getPointPosition:function(t,e){var n=this,i=n.getIndexAngle(t)-Math.PI/2;return{x:Math.round(Math.cos(i)*e)+n.xCenter,y:Math.round(Math.sin(i)*e)+n.yCenter}},getPointPositionForValue:function(t,e){return this.getPointPosition(t,this.getDistanceFromCenterForValue(e))},getBasePosition:function(){var t=this,e=t.min,n=t.max;return t.getPointPositionForValue(0,t.beginAtZero?0:e<0&&n<0?n:e>0&&n>0?e:0)},draw:function(){var t=this,e=t.options,n=e.gridLines,i=e.ticks,a=f.getValueOrDefault;if(e.display){var o=t.ctx,r=a(i.fontSize,g.defaultFontSize),l=a(i.fontStyle,g.defaultFontStyle),s=a(i.fontFamily,g.defaultFontFamily),u=f.fontString(r,l,s);f.each(t.ticks,function(l,s){if(s>0||e.reverse){var d=t.getDistanceFromCenterForValue(t.ticksAsNumbers[s]),h=t.yCenter-d;if(n.display&&0!==s&&c(t,n,d,s),i.display){var f=a(i.fontColor,g.defaultFontColor);if(o.font=u,i.showLabelBackdrop){var p=o.measureText(l).width;o.fillStyle=i.backdropColor,o.fillRect(t.xCenter-p/2-i.backdropPaddingX,h-r/2-i.backdropPaddingY,p+2*i.backdropPaddingX,r+2*i.backdropPaddingY)}o.textAlign=\"center\",o.textBaseline=\"middle\",o.fillStyle=f,o.fillText(l,t.xCenter,h)}}}),(e.angleLines.display||e.pointLabels.display)&&d(t)}}});t.scaleService.registerScaleType(\"radialLinear\",m,p)}},{}],49:[function(t,e,n){\"use strict\";var i=t(1);i=\"function\"==typeof i?i:window.moment,e.exports=function(t){function e(t,e){var n=t.options.time;if(\"string\"==typeof n.parser)return i(e,n.parser);if(\"function\"==typeof n.parser)return n.parser(e);if(\"function\"==typeof e.getMonth||\"number\"==typeof e)return i(e);if(e.isValid&&e.isValid())return e;var a=n.format;return\"string\"!=typeof a&&a.call?(console.warn(\"options.time.format is deprecated and replaced by options.time.parser.\"),a(e)):i(e,a)}function n(t,e,n,i){for(var a,o=Object.keys(l),r=o.length,s=o.indexOf(t);s<r;s++){a=o[s];var u=l[a],d=u.steps&&u.steps[u.steps.length-1]||u.maxStep;if(void 0===d||Math.ceil((n-e)/(d*u.size))<=i)break}return a}function a(t,e,n,i){var a=l[n],o=a.size,r=Math.ceil((e-t)/o),s=1,u=e-t;if(a.steps)for(var d=a.steps.length,c=0;c<d&&r>i;c++)s=a.steps[c],r=Math.ceil(u/(o*s));else for(;r>i&&i>0;)++s,r=Math.ceil(u/(o*s));return s}function o(t,e,n){var a=[];if(t.maxTicks){var o=t.stepSize;a.push(void 0!==t.min?t.min:n.min);for(var r=i(n.min);r.add(o,t.unit).valueOf()<n.max;)a.push(r.valueOf());var l=t.max||n.max;a[a.length-1]!==l&&a.push(l)}return a}var r=t.helpers,l={millisecond:{size:1,steps:[1,2,5,10,20,50,100,250,500]},second:{size:1e3,steps:[1,2,5,10,30]},minute:{size:6e4,steps:[1,2,5,10,30]},hour:{size:36e5,steps:[1,2,3,6,12]},day:{size:864e5,steps:[1,2,5]},week:{size:6048e5,maxStep:4},month:{size:2628e6,maxStep:3},quarter:{size:7884e6,maxStep:4},year:{size:3154e7,maxStep:!1}},s={position:\"bottom\",time:{parser:!1,format:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:\"millisecond\",displayFormats:{millisecond:\"h:mm:ss.SSS a\",second:\"h:mm:ss a\",minute:\"h:mm:ss a\",hour:\"MMM D, hA\",day:\"ll\",week:\"ll\",month:\"MMM YYYY\",quarter:\"[Q]Q - YYYY\",year:\"YYYY\"}},ticks:{autoSkip:!1}};t.Ticks.generators.time=function(t,e){var n,a,r=t.isoWeekday;return\"week\"===t.unit&&r!==!1?(n=i(e.min).startOf(\"isoWeek\").isoWeekday(r).valueOf(),a=i(e.max).startOf(\"isoWeek\").isoWeekday(r),e.max-a>0&&a.add(1,\"week\"),a=a.valueOf()):(n=i(e.min).startOf(t.unit).valueOf(),a=i(e.max).startOf(t.unit),e.max-a>0&&a.add(1,t.unit),a=a.valueOf()),o(t,e,{min:n,max:a})};var u=t.Scale.extend({initialize:function(){if(!i)throw new Error(\"Chart.js - Moment.js could not be found! You must include it before Chart.js to use the time scale. Download at https://momentjs.com\");t.Scale.prototype.initialize.call(this)},determineDataLimits:function(){var t,n=this,i=n.options.time,a=Number.MAX_SAFE_INTEGER,o=Number.MIN_SAFE_INTEGER,l=n.chart.data,s={labels:[],datasets:[]};r.each(l.labels,function(r,l){var u=e(n,r);u.isValid()&&(i.round&&u.startOf(i.round),t=u.valueOf(),a=Math.min(t,a),o=Math.max(t,o),s.labels[l]=t)}),r.each(l.datasets,function(l,u){var d=[];\"object\"==typeof l.data[0]&&null!==l.data[0]&&n.chart.isDatasetVisible(u)?r.each(l.data,function(r,l){var s=e(n,n.getRightValue(r));s.isValid()&&(i.round&&s.startOf(i.round),t=s.valueOf(),a=Math.min(t,a),o=Math.max(t,o),d[l]=t)}):d=s.labels.slice(),s.datasets[u]=d}),n.dataMin=a,n.dataMax=o,n._parsedData=s},buildTicks:function(){var i,o,l=this,s=l.options.time,u=l.dataMin,d=l.dataMax;if(s.min){var c=e(l,s.min);s.round&&c.round(s.round),i=c.valueOf()}s.max&&(o=e(l,s.max).valueOf());var h=l.getLabelCapacity(i||u),f=s.unit||n(s.minUnit,i||u,o||d,h);l.displayFormat=s.displayFormats[f];var g=s.stepSize||a(i||u,o||d,f,h);l.ticks=t.Ticks.generators.time({maxTicks:h,min:i,max:o,stepSize:g,unit:f,isoWeekday:s.isoWeekday},{min:u,max:d}),l.max=r.max(l.ticks),l.min=r.min(l.ticks)},getLabelForIndex:function(t,n){var i=this,a=i.chart.data.labels&&t<i.chart.data.labels.length?i.chart.data.labels[t]:\"\",o=i.chart.data.datasets[n].data[t];return null!==o&&\"object\"==typeof o&&(a=i.getRightValue(o)),i.options.time.tooltipFormat&&(a=e(i,a).format(i.options.time.tooltipFormat)),a},tickFormatFunction:function(t,e,n){var i=t.format(this.displayFormat),a=this.options.ticks,o=r.getValueOrDefault(a.callback,a.userCallback);return o?o(i,e,n):i},convertTicksToLabels:function(){var t=this;t.ticksAsTimestamps=t.ticks,t.ticks=t.ticks.map(function(t){return i(t)}).map(t.tickFormatFunction,t)},getPixelForOffset:function(t){var e=this,n=e.max-e.min,i=n?(t-e.min)/n:0;if(e.isHorizontal()){var a=e.width*i;return e.left+Math.round(a)}var o=e.height*i;return e.top+Math.round(o)},getPixelForValue:function(t,n,i){var a=this,o=null;if(void 0!==n&&void 0!==i&&(o=a._parsedData.datasets[i][n]),null===o&&(t&&t.isValid||(t=e(a,a.getRightValue(t))),t&&t.isValid&&t.isValid()&&(o=t.valueOf())),null!==o)return a.getPixelForOffset(o)},getPixelForTick:function(t){return this.getPixelForOffset(this.ticksAsTimestamps[t])},getValueForPixel:function(t){var e=this,n=e.isHorizontal()?e.width:e.height,a=(t-(e.isHorizontal()?e.left:e.top))/n;return i(e.min+a*(e.max-e.min))},getLabelWidth:function(e){var n=this,i=n.options.ticks,a=n.ctx.measureText(e).width,o=Math.cos(r.toRadians(i.maxRotation)),l=Math.sin(r.toRadians(i.maxRotation)),s=r.getValueOrDefault(i.fontSize,t.defaults.global.defaultFontSize);return a*o+s*l},getLabelCapacity:function(t){var e=this;e.displayFormat=e.options.time.displayFormats.millisecond;var n=e.tickFormatFunction(i(t),0,[]),a=e.getLabelWidth(n),o=e.isHorizontal()?e.width:e.height,r=o/a;return r}});t.scaleService.registerScaleType(\"time\",u,s)}},{1:1}]},{},[7])(7)});\n"
  },
  {
    "path": "chartjs/style.css",
    "content": ""
  },
  {
    "path": "cover/component.json",
    "content": "{\n  \"name\":\"cover\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": [\n    \"base\",\n    \"grid\"\n  ]\n}\n"
  },
  {
    "path": "cover/index.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title></title>\n    <link href=\"https://fonts.googleapis.com/css?family=Dosis|Raleway:400,700|Roboto:300,400,900,\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n    <link rel=\"stylesheet\" href=\"../base/reset.css\">\n    <link rel=\"stylesheet\" href=\"../base/mobileui.css\">\n    <link rel=\"stylesheet\" href=\"../base/colors.css\">\n    <link rel=\"stylesheet\" href=\"../base/icons.css\">\n    <link rel=\"stylesheet\" href=\"../header/style.css\">\n    <link rel=\"stylesheet\" href=\"../button/style.css\">\n    <link rel=\"stylesheet\" href=\"../list/style.css\">\n    <link rel=\"stylesheet\" href=\"../grid/style.css\">\n    <link rel=\"stylesheet\" href=\"style.css\">\n    <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n    <style>\n      .content-land { margin-left:50px}\n    </style>\n  </head>\n  <body class=\"content-land\">\n    <!-- BEGIN -->\n    <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">Cover</h2>\n    <p>This component allows you to create teasers using images.\n      Regardless of what kind of element, it will always be centered vertically and horizontally and cover\n      its container without losing its proportions. You can also place additional content, like text or image,\n      on top of the image.</p>\n      <p>\n        To use this component you need install with the command:\n      </p>\n      <div class=\"dependency tooltip\">\n        <strong>Dependency:</strong> <code>base</code>.\n        <span class=\"tooltiptext\">The dependencies will be installed together with this module</span>\n      </div>\n      <pre>mobileui install cover</pre>\n      <!-- _DOC_GENERATE_CSS_DOC -->\n      <p>You can use all features the <a href=\"#base\">base</a> MobileUI in this component.</p>\n<textarea class=\"bind-code\" mode=\"text/html\">\n<div class=\"cover align-center\" style=\"background-image:url(../assets/img/aurora-boreal-rosa.jpg)\">\n  <div class=\"space\"></div>\n  <h1 class=\"text-huge text-white text-light\">About Northern Lights</h1>\n  <p class=\"text-small text-white text-light\">\n    The bright dancing lights of the aurora are actually collisions between\n    electrically charged particles from the sun that enter the earth's atmosphere.\n  </p>\n  <div class=\"space\"></div>\n</div></textarea>\n    <p>\n      You can add color with transparent layer adding class <code>blend-soft-light</code>, <code>blend-darken</code>,\n      <code>blend-luminosity</code>, <code>blend-multiply</code>, <code>blend-screen</code> and <code>blend-overlay</code>.\n      See this example with <a href=\"#header\">header</a> component.</p>\n<textarea class=\"bind-code\" mode=\"text/html\" header-absolute=\"true\">\n<div class=\"header text-white\">\n  <div class=\"left\">\n    <button class=\"icon ion-location\"></button>\n  </div>\n  <div class=\"right\">\n    <button class=\"icon ion-share\"></button>\n  </div>\n</div>\n<div class=\"cover blend-soft-light align-center blue-800\" style=\"background-image:url(../assets/img/business.jpg)\">\n  <div class=\"space\"></div>\n  <div class=\"space\"></div>\n  <div class=\"space\"></div>\n  <h1 class=\"text-huge text-white text-light\">Event On This Day</h1>\n  <p class=\"text-small text-white text-light\">\n    To know new places around the world\n  </p>\n  <div class=\"space\"></div>\n</div>\n<p>Without blend mode:</p>\n<div class=\"cover align-center\" style=\"background-image:url(../assets/img/business.jpg)\">\n  <div class=\"space\"></div>\n  <div class=\"space\"></div>\n  <div class=\"space\"></div>\n  <h1 class=\"text-huge text-white text-light\">Event On This Day</h1>\n  <p class=\"text-small text-white text-light\">\n    To know new places around the world\n  </p>\n  <div class=\"space\"></div>\n</div></textarea>\n    <p>You can combinate with <a href=\"#button\">button</a> circle and <a href=\"#list\">list</a> component.</p>\n<textarea class=\"bind-code\" mode=\"text/html\" header-absolute=\"true\" hidden=\"true\" replace=\"body,div\">\n<body>\n  <div class=\"header text-white blue-900\">\n    <div class=\"left\">\n      <button class=\"icon ion-android-arrow-back\"></button>\n    </div>\n    <div class=\"right\">\n      <button class=\"icon ion-android-more-vertical\"></button>\n    </div>\n  </div>\n  <div class=\"content has-header\">\n    <div class=\"cover blue align-center blend-soft-light\" style=\"background-image:url(../assets/img/backtop.png)\">\n      <img class=\"avatar circle border-white shadow\" src=\"../assets/img/33.jpg\">\n      <h1 class=\"text-white\">Carter Hudson</h1>\n      <p>+55 45 9878 9878</p>\n      <button class=\"blue-900 big circle float-bottom-right icon ion-ios-telephone\"></button>\n    </div>\n    <div class=\"list\">\n      <div class=\"item\">\n        <div class=\"left\">\n          <img class=\"avatar circle\" src=\"../assets/img/80.jpg\">\n        </div>\n        <h2>Jeanette Fletcher</h2>\n        <p class=\"text-grey\">+55 7979 325 655</p>\n        <div class=\"right\">\n          <small class=\"text-grey\">\n            5 min\n            <i class=\"icon ion-android-happy green\"></i>\n          </small>\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"left\">\n          <img class=\"avatar circle\" src=\"../assets/img/53.jpg\">\n        </div>\n        <h2>Emilio Dias</h2>\n        <p class=\"text-grey\">+55 8989 325 655</p>\n        <div class=\"right\">\n          <small class=\"text-grey\">\n            12 min\n            <i class=\"icon ion-android-sad text-red\"></i>\n          </small>\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"left\">\n          <img class=\"avatar circle\" src=\"../assets/img/96.jpg\">\n        </div>\n        <h2>Marcos Paulo</h2>\n        <p class=\"text-grey\">+55 1245 325 655</p>\n        <div class=\"right\">\n          <small class=\"text-grey\">\n            32 min\n            <i class=\"icon ion-android-sad red\"></i>\n          </small>\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"left\">\n          <img class=\"avatar circle\" src=\"../assets/img/33.jpg\">\n        </div>\n        <h2>Carter Hudson</h2>\n        <p class=\"text-grey\">+55 8797 325 655</p>\n        <div class=\"right\">\n          <small class=\"text-grey\">\n            1h 12 min\n            <i class=\"icon ion-android-happy green\"></i>\n          </small>\n        </div>\n      </div>\n    </div>\n  </div>\n</body></textarea>\n    <p>\n      You can combinate this component with <a href=\"#list\">list</a>, <a href=\"#card\">card</a>, <a href=\"#badge\">badge</a>, <a href=\"#icons\">icons</a> and <a href=\"#grid\">grid</a>.\n    </p>\n<textarea class=\"bind-code\" mode=\"text/html\">\n<div class=\"list radius shadow\">\n  <div class=\"item no-border\">\n    <div class=\"left\">\n      <img class=\"avatar circle\" src=\"../assets/img/65.jpg\">\n    </div>\n    <h2>Joanne Johnson</h2>\n    <p class=\"text-grey\">Posted a new item for sale.</p>\n    <div class=\"right text-grey text-small\">\n      2h <i class=\"icon ion-android-time\"></i>\n    </div>\n  </div>\n  <div class=\"item no-border cover radius\" style=\"background-image:url(../assets/img/bike.png)\">\n    <div class=\"text-small gradient bottom padding text-white text-light radius\">\n      <span class=\"amber-300 radius padding text-big text-strong\">$198</span>\n      Great for casual weekend outings :)\n    </div>\n  </div>\n  <div class=\"item no-border row align-center\">\n    <div class=\"col text-red\">\n      <i class=\"icon ion-heart\"></i> 245\n    </div>\n    <div class=\"col text-grey\">\n      <i class=\"icon ion-chatbox\"></i> 22\n    </div>\n    <div class=\"col text-grey\">\n      <i class=\"icon ion-android-share-alt\"></i> 65\n    </div>\n  </div>\n</div></textarea>\n    <!-- DONE -->\n    <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n    <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n    <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n    <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "cover/style.css",
    "content": "/*Define that an element has a <code>background-image</code> and must cover the space required.*/\r\n.cover {\r\n  padding: 15px;\r\n  background-position: 50% 50%;\r\n  background-size: cover;\r\n  background-repeat: no-repeat;\r\n  width: 100%;\r\n  position: relative;\r\n}\r\n/*Fixed height size.*/\r\n.cover.cover-200 {\r\n  height: 300px;\r\n}\r\n/*Fixed height size.*/\r\n.cover.cover-200 {\r\n  height: 300px;\r\n}\r\n/*Fixed height size.*/\r\n.cover.cover-400 {\r\n  height: 400px;\r\n}\r\n/*Fixed height size.*/\r\n.cover.cover-500 {\r\n  height: 500px;\r\n}\r\n/*Remove space inner the cover.*/\r\n.cover.no-padding {\r\n  padding: 0;\r\n}\r\n/*Limit the size of an image and add large border.*/\r\n.cover .avatar {\r\n  height: 100px;\r\n  border-width: 4px;\r\n  margin-bottom: 5px;\r\n}\r\n.cover .item .avatar {\r\n  height: 50px;\r\n}\r\n/*Float an element in the footer on the left.*/\r\n.cover .float-bottom-right,\r\n.cover .float-bottom-center,\r\n.cover .float-bottom-left {\r\n  margin-bottom: -30px;\r\n  z-index: 99;\r\n  position: absolute;\r\n}\r\n/*Float an element in the footer on the right.*/\r\n.cover .big.float-bottom-left,\r\n.cover .big.float-bottom-center,\r\n.cover .big.float-bottom-right {\r\n  margin-bottom: -35px;\r\n}\r\n/*Float an element in the footer on the center.*/\r\n.cover .small.float-bottom-right,\r\n.cover .small.float-bottom-left,\r\n.cover .small.float-bottom-center {\r\n  margin-bottom: -25px;\r\n}\r\n.cover .float-bottom-center {\r\n  left: 50%;\r\n  margin-left: -21px;\r\n}\r\n.cover .small.float-bottom-center {\r\n  left: 50%;\r\n  margin-left: -15px;\r\n}\r\n.cover .big.float-bottom-center {\r\n  left: 50%;\r\n  margin-left: -25px;\r\n}\r\n/*Set a gradient effect from black to transparent in the background of an element.*/\r\n.cover .gradient {\r\n  background: -webkit-linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,0.65) 100%);\r\n  background: linear-gradient(to bottom, rgba(0,0,0,0) 0%,rgba(0,0,0,0.65) 100%);\r\n  width: 100%;\r\n  padding-bottom: 10px;\r\n  padding-top: 20px;\r\n}\r\n/*Used when a <code>background-image</code> is set to apply the multiply effect of CSS3 in the background. See more at: <a target=\"_blank\" href=\"https://drafts.fxtf.org/compositing-1/#valdef-blend-mode-multiply\">multiply blend mode</a>*/\r\n.cover.blend-multiply {\r\n  background-blend-mode: multiply;\r\n}\r\n/*Used when a <code>background-image</code> is set to apply the screen effect of CSS3 in the background. See more at: <a target=\"_blank\" href=\"https://drafts.fxtf.org/compositing-1/#valdef-blend-mode-screen\">screen blend mode</a>*/\r\n.cover.blend-screen {\r\n  background-blend-mode: screen;\r\n}\r\n/*Used when a <code>background-image</code> is set to apply the overlay effect of CSS3 in the background. See more at: <a target=\"_blank\" href=\"https://drafts.fxtf.org/compositing-1/#valdef-blend-mode-overlay\">overlay blend mode</a>*/\r\n.cover.blend-overlay {\r\n  background-blend-mode: overlay;\r\n}\r\n/*Used when a <code>background-image</code> is set to apply the darken effect of CSS3 in the background. See more at: <a target=\"_blank\" href=\"https://drafts.fxtf.org/compositing-1/#valdef-blend-mode-darken\">darken blend mode</a>*/\r\n.cover.blend-darken {\r\n  background-blend-mode: darken;\r\n}\r\n/*Used when a <code>background-image</code> is set to apply the lighten effect of CSS3 in the background. See more at: <a target=\"_blank\" href=\"https://drafts.fxtf.org/compositing-1/#valdef-blend-mode-lighten\">lighten blend mode</a>*/\r\n.cover.blend-lighten {\r\n  background-blend-mode: lighten;\r\n}\r\n/*Used when a <code>background-image</code> is set to apply the color-dodge effect of CSS3 in the background. See more at: <a target=\"_blank\" href=\"https://drafts.fxtf.org/compositing-1/#valdef-blend-mode-color-dodge\">color-dodge blend mode</a>*/\r\n.cover.blend-color-dodge {\r\n  background-blend-mode: color-dodge;\r\n}\r\n/*Used when a <code>background-image</code> is set to apply the color-burn effect of CSS3 in the background. See more at: <a target=\"_blank\" href=\"https://drafts.fxtf.org/compositing-1/#valdef-blend-mode-color-burn\">color-burn blend mode</a>*/\r\n.cover.blend-color-burn {\r\n  background-blend-mode: color-burn;\r\n}\r\n/*Used when a <code>background-image</code> is set to apply the hard-light effect of CSS3 in the background. See more at: <a target=\"_blank\" href=\"https://drafts.fxtf.org/compositing-1/#valdef-blend-mode-hard-light\">hard-light blend mode</a>*/\r\n.cover.blend-hard-light {\r\n  background-blend-mode: hard-light;\r\n}\r\n/*Used when a <code>background-image</code> is set to apply the soft-light effect of CSS3 in the background. See more at: <a target=\"_blank\" href=\"https://drafts.fxtf.org/compositing-1/#valdef-blend-mode-soft-light\">soft-light blend mode</a>*/\r\n.cover.blend-soft-light {\r\n  background-blend-mode: soft-light;\r\n}\r\n/*Used when a <code>background-image</code> is set to apply the luminosity effect of CSS3 in the background. See more at: <a target=\"_blank\" href=\"https://drafts.fxtf.org/compositing-1/#valdef-blend-mode-luminosity\">luminosity blend mode</a>*/\r\n.cover.blend-luminosity {\r\n  background-blend-mode: luminosity;\r\n}\r\n"
  },
  {
    "path": "dist/alert.json",
    "content": "{\n  \"name\":\"alert\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": [\n    \"base\"\n  ]\n}\n"
  },
  {
    "path": "dist/base.json",
    "content": "{\n  \"name\":\"base\",\n  \"dependencies\": [],\n  \"files\":[\n    \"fonts/ionicons.woff\",\n    \"fonts/roboto.woff2\",\n    \"fonts/robotoblack.woff2\",\n    \"fonts/robotolight.woff2\"\n  ]\n}\n"
  },
  {
    "path": "dist/button.json",
    "content": "{\n  \"name\":\"button\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": [\n    \"base\"\n  ]\n}\n"
  },
  {
    "path": "dist/chart-bar.json",
    "content": "{\n  \"name\":\"chart-bar\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": [\n    \"base\"\n  ]\n}\n"
  },
  {
    "path": "dist/chartist-plugin-tooltip.json",
    "content": "{\n  \"name\":\"chartist-plugin-tooltip\",\n  \"author\": \"tmmdata\",\n  \"dependencies\": [\n    \"chartist\"\n  ]\n}\n"
  },
  {
    "path": "dist/chartist.json",
    "content": "{\n  \"name\":\"chartist\",\n  \"author\": \"gionkunz\",\n  \"dependencies\": []\n}\n"
  },
  {
    "path": "dist/chartjs.json",
    "content": "{\n  \"name\":\"chartjs\",\n  \"author\": \"nnnick\",\n  \"dependencies\": []\n}\n"
  },
  {
    "path": "dist/cover.json",
    "content": "{\n  \"name\":\"cover\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": [\n    \"base\",\n    \"grid\"\n  ]\n}\n"
  },
  {
    "path": "dist/grid.json",
    "content": "{\n  \"name\":\"grid\",\n  \"author\": \"gustavoquinalha\",\n  \"dependencies\": []\n}\n"
  },
  {
    "path": "dist/header.json",
    "content": "{\n  \"name\":\"header\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": [\n    \"base\",\n    \"button\"\n  ]\n}\n"
  },
  {
    "path": "dist/horizontal-scroll.json",
    "content": "{\n  \"name\":\"horizontal-scroll\",\n  \"author\": \"Yash-Handa\",\n  \"dependencies\": [\n    \"base\"\n  ]\n}\n"
  },
  {
    "path": "dist/imports.css",
    "content": "@import url(\"./alert.min.css\");\n@import url(\"./base.min.css\");\n@import url(\"./button.min.css\");\n@import url(\"./chart-bar.min.css\");\n@import url(\"./chartist.min.css\");\n@import url(\"./chartist-plugin-tooltip.min.css\");\n@import url(\"./chartjs.min.css\");\n@import url(\"./cover.min.css\");\n@import url(\"./grid.min.css\");\n@import url(\"./header.min.css\");\n@import url(\"./horizontal-scroll.min.css\");\n@import url(\"./include.min.css\");\n@import url(\"./input.min.css\");\n@import url(\"./jquery.min.css\");\n@import url(\"./list.min.css\");\n@import url(\"./loading.min.css\");\n@import url(\"./menu.min.css\");\n@import url(\"./mobileui-colors.min.css\");\n@import url(\"./mobileuijs.min.css\");\n@import url(\"./momentjs.min.css\");\n@import url(\"./page.min.css\");\n@import url(\"./popover.min.css\");\n@import url(\"./progress-circle.min.css\");\n@import url(\"./progress-semicircle.min.css\");\n@import url(\"./progressbarjs.min.css\");\n@import url(\"./pulltorefresh.min.css\");\n@import url(\"./swiper.min.css\");\n@import url(\"./tab.min.css\");\n@import url(\"./timeline.min.css\");\n@import url(\"./toast.min.css\");\n"
  },
  {
    "path": "dist/include.json",
    "content": "{\n  \"name\":\"include\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": []\n}\n"
  },
  {
    "path": "dist/input.json",
    "content": "{\n  \"name\":\"input\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": [\n    \"base\",\n    \"list\"\n  ]\n}\n"
  },
  {
    "path": "dist/jquery.json",
    "content": "{\n  \"name\":\"jquery\",\n  \"author\": \"madrobby\",\n  \"dependencies\": []\n}\n"
  },
  {
    "path": "dist/list.json",
    "content": "{\n  \"name\":\"list\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": [\n    \"base\"\n  ]\n}\n"
  },
  {
    "path": "dist/loading.json",
    "content": "{\n  \"name\":\"loading\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": [\n    \"alert\"\n  ]\n}\n"
  },
  {
    "path": "dist/menu.json",
    "content": "{\n  \"name\":\"menu\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": [\n    \"base\",\n    \"list\"\n  ]\n}\n"
  },
  {
    "path": "dist/mobileui-colors.json",
    "content": "{\n  \"name\":\"mobileui-colors\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": []\n}\n"
  },
  {
    "path": "dist/mobileuijs.json",
    "content": "{\n  \"name\":\"mobileuijs\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": []\n}\n"
  },
  {
    "path": "dist/momentjs.json",
    "content": "{\n  \"name\":\"momentjs\",\n  \"author\": \"timrwood\",\n  \"dependencies\": []\n}\n"
  },
  {
    "path": "dist/page.json",
    "content": "{\n  \"name\":\"page\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": []\n}\n"
  },
  {
    "path": "dist/popover.json",
    "content": "{\n  \"name\":\"popover\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": [\n    \"base\",\n    \"list\"\n  ]\n}\n"
  },
  {
    "path": "dist/progress-circle.json",
    "content": "{\n  \"name\":\"progress-circle\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": [\n    \"mobileui-colors\",\n    \"progressbarjs\"\n  ]\n}\n"
  },
  {
    "path": "dist/progress-circular.json",
    "content": "{\n  \"name\":\"progress-circular\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": [\n    \"base\"\n  ]\n}\n"
  },
  {
    "path": "dist/progress-semicircle.json",
    "content": "{\n  \"name\":\"progress-semicircle\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": [\n    \"mobileui-colors\",\n    \"progressbarjs\"\n  ]\n}\n"
  },
  {
    "path": "dist/progressbarjs.json",
    "content": "{\n  \"name\":\"progressbarjs\",\n  \"author\": \"kimmobrunfeldt\",\n  \"dependencies\": []\n}\n"
  },
  {
    "path": "dist/pulltorefresh.json",
    "content": "{\n  \"name\":\"pulltorefresh\",\n  \"author\": \"BoxFactura\",\n  \"dependencies\": []\n}\n"
  },
  {
    "path": "dist/swiper.json",
    "content": "{\n  \"name\":\"swiper\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": []\n}\n"
  },
  {
    "path": "dist/tab.json",
    "content": "{\n  \"name\":\"tab\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": [\n    \"base\",\n    \"button\"\n  ]\n}\n"
  },
  {
    "path": "dist/templates.json",
    "content": ""
  },
  {
    "path": "dist/timeline.json",
    "content": "{\n  \"name\":\"timeline\",\n  \"author\": \"gustavoquinalha\",\n  \"dependencies\": [\"base\", \"grid\"]\n}\n"
  },
  {
    "path": "dist/toast.json",
    "content": "{\n  \"name\":\"toast\",\n  \"author\": \"lucasssv\",\n  \"dependencies\": [\n    \"base\"\n  ]\n}\n"
  },
  {
    "path": "docs.json",
    "content": "{\n  \"site_dir\": \"../mobileui.github.io\",\n  \"docs\": [\n    {\n      \"category\": \"Getting started\",\n      \"itens\": [\n        {\n          \"key\":\"getting-started\",\n          \"label\":\"Install\",\n          \"path\":\"./base/install.html\"\n        },\n        {\n          \"key\":\"templates\",\n          \"label\":\"Templates\",\n          \"path\":\"./base/templates.html\"\n        },\n        {\n          \"key\":\"demos\",\n          \"label\":\"Demos\",\n          \"link\": \"/demos\"\n        }\n      ]\n    },\n    {\n      \"category\": \"Components base\",\n      \"itens\": [\n        {\n          \"key\":\"base\",\n          \"label\":\"Base\",\n          \"path\":\"./base/base.html\"\n        },\n        {\n          \"key\":\"colors\",\n          \"label\":\"Colors\",\n          \"path\":\"./base/colors.html\"\n        },\n        {\n          \"key\":\"icons\",\n          \"label\":\"Icons\",\n          \"path\":\"./base/icons.html\"\n        },\n        {\n          \"key\":\"fonts\",\n          \"label\":\"Fonts\",\n          \"path\":\"./base/fonts.html\"\n        },\n        {\n          \"key\":\"header\",\n          \"label\":\"Header\",\n          \"path\":\"./header/index.html\"\n        },\n        {\n          \"key\":\"button\",\n          \"label\":\"Button\",\n          \"path\":\"./button/index.html\"\n        },\n        {\n          \"key\":\"input\",\n          \"label\":\"Input\",\n          \"path\":\"./input/index.html\"\n        },\n        {\n          \"key\":\"list\",\n          \"label\":\"List\",\n          \"path\":\"./list/index.html\"\n        },\n        {\n          \"key\":\"tab\",\n          \"label\":\"Tab\",\n          \"path\":\"./tab/index.html\"\n        },\n        {\n          \"key\":\"card\",\n          \"label\":\"Card\",\n          \"path\":\"./base/card.html\"\n        },\n        {\n          \"key\":\"badge\",\n          \"label\":\"Badge\",\n          \"path\":\"./base/badge.html\"\n        },\n        {\n          \"key\":\"cover\",\n          \"label\":\"Cover\",\n          \"path\":\"./cover/index.html\"\n        },\n        {\n          \"key\":\"menu\",\n          \"label\":\"Menu\",\n          \"path\":\"./menu/index.html\"\n        },\n        {\n          \"key\":\"grid\",\n          \"label\":\"Grid\",\n          \"path\":\"./grid/index.html\"\n        },\n        {\n          \"key\":\"swiper\",\n          \"label\":\"Swiper\",\n          \"path\":\"./swiper/index.html\"\n        },\n        {\n          \"key\":\"page\",\n          \"label\":\"Page\",\n          \"path\":\"./page/index.html\"\n        },\n        {\n          \"key\":\"include\",\n          \"label\":\"Include\",\n          \"path\":\"./include/index.html\"\n        },\n        {\n          \"key\":\"popover\",\n          \"label\":\"Popover\",\n          \"path\":\"./popover/index.html\"\n        },\n        {\n          \"key\":\"alert\",\n          \"label\":\"Alert\",\n          \"path\":\"./alert/index.html\"\n        },\n        {\n          \"key\":\"toast\",\n          \"label\":\"Toast\",\n          \"path\":\"./toast/index.html\"\n        },\n        {\n          \"key\":\"loading\",\n          \"label\":\"Loading\",\n          \"path\":\"./loading/index.html\"\n        },\n        {\n          \"key\":\"timeline\",\n          \"label\":\"Timeline\",\n          \"path\":\"./timeline/index.html\"\n        }\n      ]\n    },\n    {\n      \"category\": \"Components charts\",\n      \"itens\": [\n        {\n          \"key\":\"chartist\",\n          \"label\":\"Chartist\",\n          \"path\":\"./chartist/index.html\"\n        },\n        {\n          \"key\":\"progress-circle\",\n          \"label\":\"Progress Circle\",\n          \"path\":\"./progress-circle/index.html\"\n        },\n        {\n          \"key\":\"progress-semicircle\",\n          \"label\":\"Progress Semicircle\",\n          \"path\":\"./progress-semicircle/index.html\"\n        },\n        {\n          \"key\":\"chart-bar\",\n          \"label\":\"Chart Bar\",\n          \"path\":\"./chart-bar/index.html\"\n        }\n      ]\n    },\n    {\n      \"category\": \"Libs\",\n      \"itens\": [\n        {\n          \"key\":\"mobileuijs\",\n          \"label\":\"MobileUI.js\",\n          \"path\":\"./mobileuijs/index.html\"\n        },\n        {\n          \"key\":\"jquery\",\n          \"label\":\"jQuery\",\n          \"path\":\"./jquery/index.html\"\n        },\n        {\n          \"key\":\"progressbarjs\",\n          \"label\":\"ProgressBar.js\",\n          \"path\":\"./progressbarjs/index.html\"\n        },\n        {\n          \"key\":\"chartjs\",\n          \"label\":\"Chart.js\",\n          \"path\":\"./chartjs/index.html\"\n        },\n        {\n          \"key\":\"momentjs\",\n          \"label\":\"Moment.js\",\n          \"path\":\"./momentjs/index.html\"\n        },\n        {\n          \"key\":\"pulltorefresh\",\n          \"label\":\"PullToRefresh\",\n          \"path\":\"./pulltorefresh/index.html\"\n        }\n      ]\n    }\n  ]\n}\n"
  },
  {
    "path": "generate_dist.js",
    "content": "const fs = require('fs')\nconst path = require('path')\nconst compressor = require('node-minify')\nconst wrench = require('wrench')\n\nfunction getDirectories (srcpath) {\n  return fs.readdirSync(srcpath)\n    .filter(function(file){\n      return fs.statSync(path.join(srcpath, file)).isDirectory() &&\n                      file.indexOf('.') < 0 &&\n                      file !== 'node_modules' &&\n                      file !== 'dist' &&\n                      file !== 'assets'\n    })\n}\n\nvar importsAll = ''\nvar dir = getDirectories('./')\nfor(var i in dir) {\n  var item = dir[i]\n  importsAll += `@import url(\"./${item}.min.css\");\\n`\n  fs.createReadStream(`./${item}/component.json`).pipe(fs.createWriteStream(`./dist/${item}.json`));\n  if(item === 'base') {\n    compressor.minify({\n      compressor: 'clean-css',\n      input: ['./base/reset.css','./base/mobileui.css','./base/colors.css','./base/font.css','./base/icons.css'],\n      output: './dist/base.min.css',\n      options: {\n        advanced: false,\n        aggressiveMerging: false\n      },\n      callback: function (err, min) {\n        if(err) console.log('ERROR: ', err)\n        wrench.copyDirSyncRecursive('./base/fonts', './dist/fonts', {\n            forceDelete: true\n        })\n      }\n    })\n    compressor.minify({\n      compressor: 'gcc',\n      input: './base/base.js',\n      output: './dist/base.min.js',\n      callback: function (err, min) {\n        if(err) console.log('ERROR: ', err)\n      }\n    });\n  } else {\n    if(fs.existsSync(`./${item}/style.css`)){\n      compressor.minify({\n        compressor: 'clean-css',\n        input: `./${item}/style.css`,\n        output: `./dist/${item}.min.css`,\n        options: {\n          advanced: false,\n          aggressiveMerging: false\n        },\n        callback: function (err, min) {\n          if(err) console.log('ERROR: ', err)\n        }\n      })\n    }\n    if(fs.existsSync(`./${item}/script.js`)){\n      compressor.minify({\n        compressor: 'uglifyjs',\n        input: `./${item}/script.js`,\n        output: `./dist/${item}.min.js`,\n        callback: function (err, min) {\n          if(err) console.log('ERROR: ', err)\n        }\n      });\n    }\n  }\n}\n\nvar fileNameImport = './dist/imports.css'\nif (fs.existsSync(fileNameImport)) {\n    fs.unlinkSync(fileNameImport)\n}\nvar fd = fs.openSync(fileNameImport, 'w')\nfs.writeSync(fd, importsAll)\n"
  },
  {
    "path": "generate_doc.js",
    "content": "const fs = require('fs')\nconst path = require('path')\nconst wrench = require('wrench')\nconst docs = require('./docs.json')\n\nvar template = fs.readFileSync(path.join(docs.site_dir, 'template.html')).toString()\n\nvar menu = ''\nvar content = ''\nfor (var i in docs.docs) {\n  var item = docs.docs[i]\n  menu += `<h1>${item.category}</h1>`\n  menu += `<ul>`\n  for (var subitem of item.itens) {\n    var href = subitem.link ? subitem.link : '#' + subitem.key\n    menu += `<a href=\"${href}\" onclick=\"goDoc('${subitem.key}')\"><li>${subitem.label}</li></a>`\n    if (fs.existsSync(subitem.path)) {\n      var docHtml = fs.readFileSync(subitem.path).toString()\n      var urlDoc = 'https://github.com/MobileUI/components/tree/master/' + subitem.path.replace('./', '')\n      docHtml = docHtml.replace('<!-- DONE -->', '<a href=\"' + urlDoc + '\" target=\"_blank\" class=\"button-contribute right border-grey-300 text-grey-600\"><i class=\"text-black icon ion-social-github\"></i>Contribute on Github! Edit this section.</a>\\n<!-- DONE -->')\n      docHtml = docHtml.split('<!-- BEGIN -->')[1].split('<!-- DONE -->')[0]\n      docHtml = docHtml.replace(`id=\"_DOC_GENERATE_SPACE_\"`, `id=\"${subitem.key}\"`)\n      var docCss = ''\n      if (subitem.key === 'base') {\n        docCss = fs.readFileSync('./base/mobileui.css').toString()\n      } else if (subitem.path.indexOf('./base') < 0) {\n        var uriFile = subitem.path.replace('index.html', 'style.css')\n        if (fs.existsSync(uriFile)) {\n          docCss = fs.readFileSync(uriFile).toString()\n        }\n      }\n      if (docCss) {\n        docCss = docCss.split('/*')\n        var listCssDoc = []\n        for (i in docCss) {\n          if (docCss[i].split('{')[0].indexOf('*/') >= 0) {\n            var description = docCss[i].split('{')[0].split('*/')[0]\n            var classes = docCss[i].split('{')[0].split('*/')[1].split('.')\n            var className = classes[classes.length - 1]\n            className = className.split(':')[0]\n            if (description && className) {\n              listCssDoc.push({className: className, description: description})\n            }\n          }\n        }\n        if (listCssDoc.length) {\n          var htmlCssDoc = '<p>The features of this component are:</p>'\n          htmlCssDoc += '<div class=\"content-table\"><table class=\"tableDoc\"><tr><th>Class</th><th>Description</th></tr>'\n          for (var doc of listCssDoc) {\n            htmlCssDoc += `<tr><td><code>${doc.className}</code></td><td>${doc.description}</td></tr>`\n          }\n          htmlCssDoc += '</table></div>'\n          docHtml = docHtml.replace('<!-- _DOC_GENERATE_CSS_DOC -->', htmlCssDoc)\n        }\n      }\n      content += '<div class=\"content-doc-reader\">' + docHtml + '</div>'\n    }\n  }\n  menu += `</ul>`\n}\nvar index = template.replace(`<!-- SPACE-GENERATE-DOCS -->`, `<div class=\"menuland font-raleway\"><div class=\"list radius grey-50\"><div class=\"item space-small icon ion-search\" id=\"searchComponent\"><input type=\"text\" placeholder=\"Search...\" autofocus=\"autofocus\"></div></div>${menu}</div><div class=\"content-land font-raleway\">${content}</div>`)\nindex = index.replace(new RegExp(`../assets/`, 'g'), `/`)\nfs.writeFileSync(path.join(docs.site_dir, 'index.html'), index)\n\nif (!fs.existsSync(path.join(docs.site_dir, 'mobileui/'))) {\n  fs.mkdirSync(path.join(docs.site_dir, 'mobileui/'))\n}\n\nwrench.copyDirSyncRecursive('./dist', path.join(docs.site_dir, 'mobileui/'), {\n  forceDelete: true\n})\n"
  },
  {
    "path": "grid/component.json",
    "content": "{\n  \"name\":\"grid\",\n  \"author\": \"gustavoquinalha\",\n  \"dependencies\": []\n}\n"
  },
  {
    "path": "grid/index.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <title></title>\n  <link href=\"https://fonts.googleapis.com/css?family=Dosis|Raleway:400,700|Roboto:300,400,900,\" rel=\"stylesheet\">\n  <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n  <link rel=\"stylesheet\" href=\"../base/reset.css\">\n  <link rel=\"stylesheet\" href=\"../base/mobileui.css\">\n  <link rel=\"stylesheet\" href=\"../base/colors.css\">\n  <link rel=\"stylesheet\" href=\"../base/icons.css\">\n  <link rel=\"stylesheet\" href=\"../header/style.css\">\n  <link rel=\"stylesheet\" href=\"../button/style.css\">\n  <link rel=\"stylesheet\" href=\"../list/style.css\">\n  <link rel=\"stylesheet\" href=\"../cover/style.css\">\n  <link rel=\"stylesheet\" href=\"style.css\">\n  <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n  <style>\n    .content {\n      margin-left: 50px\n    }\n  </style>\n</head>\n<body class=\"content\">\n  <!-- BEGIN -->\n  <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">Grid</h2>\n  <p>MobileUI uses <a href=\"https://www.w3.org/TR/css-flexbox-1/\" target=\"_blank\">CSS Flexible Box Layout Module</a> standard.</p>\n  <p>\n    Simply add columns you want in a row, and they'll evenly take up the available space. If you want three columns, add three columns, if you want five columns, add five columns. There's no restriction to a 12 column grid, or having to explicitly state how\n    large each column should be.\n  </p>\n  <p>\n    The <code>row</code> class name is used to designate, surprise, a row, and <code>col</code> is used for a column. In the demo to the right we chose to have four, then two, columns, but we could have just as easily used 3, 6, 7, 23, etc., it doesn't\n    matter. Point is, add the number of columns your layout requires and don't worry about figuring out the percentages because it figures it out automatically.\n  </p>\n  <p>\n    To use this component you need install with the command:\n  </p>\n  <pre>mobileui install grid</pre>\n  <!-- _DOC_GENERATE_CSS_DOC -->\n  <textarea class=\"bind-code\" mode=\"text/html\">\n    <div class=\"row\">\n      <div class=\"col red\">\n        col\n      </div>\n      <div class=\"col blue\">\n        col\n      </div>\n    </div>\n    <br>\n    <div class=\"row\">\n      <div class=\"col red\">\n        col\n      </div>\n      <div class=\"col blue\">\n        col\n      </div>\n      <div class=\"col green\">\n        col\n      </div>\n    </div>\n    <br>\n    <div class=\"row\">\n      <div class=\"col-50 red\">\n        col-50\n      </div>\n      <div class=\"col blue\">\n        col\n      </div>\n      <div class=\"col green\">\n        col\n      </div>\n    </div>\n    <br />\n    <div class=\"row\">\n      <div class=\"col-75 red\">\n        col-75\n      </div>\n      <div class=\"col blue\">\n        col\n      </div>\n    </div>\n    <br />\n    <div class=\"row\">\n      <div class=\"col blue\">\n        col\n      </div>\n      <div class=\"col-75 red\">\n        col-75\n      </div>\n    </div>\n  </textarea>\n  <br />\n  <p>\n    See this good example using <code>row-between</code>.\n  </p>\n  <textarea class=\"bind-code\" mode=\"text/html\">\n    <div class=\"row-between\">\n      <div class=\"col-20 red\">\n        col-20\n      </div>\n      <div class=\"col-20 blue\">\n        col-20\n      </div>\n      <div class=\"col-20 blue\">\n        col-20\n      </div>\n    </div>\n    <br>\n    <div class=\"row-between\">\n      <div class=\"col-20 red\">\n        col-20\n      </div>\n      <div class=\"col-20 blue\">\n        col-20\n      </div>\n      <div class=\"col-20 green\">\n        col-20\n      </div>\n      <div class=\"col-20 yellow\">\n        col-20\n      </div>\n    </div>\n    <br>\n  </textarea>\n  <br />\n  <p>\n    See this good example using <code>row-around</code>.\n  </p>\n  <textarea class=\"bind-code\" mode=\"text/html\">\n    <div class=\"row-around\">\n      <div class=\"col-20 red\">\n        col-20\n      </div>\n      <div class=\"col-20 blue\">\n        col-20\n      </div>\n      <div class=\"col-20 blue\">\n        col-20\n      </div>\n    </div>\n    <br>\n    <div class=\"row-around\">\n      <div class=\"col-20 red\">\n        col-20\n      </div>\n      <div class=\"col-20 blue\">\n        col-20\n      </div>\n      <div class=\"col-20 green\">\n        col-20\n      </div>\n      <div class=\"col-20 yellow\">\n        col-20\n      </div>\n    </div>\n    <br>\n  </textarea>\n  <br />\n  <p>\n    See how is easy align a column in the center, using <code>row-center</code>.\n  </p>\n  <textarea class=\"bind-code\" mode=\"text/html\">\n    <div class=\"row-center grey\" style=\"height: 100px;\">\n      <div class=\"col-20 red\">\n        col-20\n      </div>\n    </div>\n    <br>\n  </textarea>\n  <br />\n  <p>\n    You can create a row with column direction, using <code>column</code>.\n  </p>\n  <textarea class=\"bind-code\" mode=\"text/html\">\n    <div class=\"column\">\n      <div class=\"col-20 red\">\n        col-20\n      </div>\n      <div class=\"col-20 blue\">\n        col-20\n      </div>\n      <div class=\"col-20 green\">\n        col-20\n      </div>\n    </div>\n    <br>\n  </textarea>\n  <br />\n  <p>\n    See this good example using <code>row</code> and <code>vertical-align-top</code>.\n  </p>\n  <textarea class=\"bind-code\" mode=\"text/html\">\n    <div class=\"row vertical-align-top grey\" style=\"height: 100px;\">\n      <div class=\"col-20 red\">\n        col-20\n      </div>\n    </div>\n    <br>\n  </textarea>\n  <br />\n  <p>\n    See this good example using <code>row</code> and <code>vertical-align-center</code>.\n  </p>\n  <textarea class=\"bind-code\" mode=\"text/html\">\n    <div class=\"row vertical-align-center grey\" style=\"height: 100px;\">\n      <div class=\"col-20 red\">\n        col-20\n      </div>\n    </div>\n    <br>\n  </textarea>\n  <br />\n  <p>\n    See this good example using <code>row</code> and <code>vertical-align-bottom</code>.\n  </p>\n  <textarea class=\"bind-code\" mode=\"text/html\">\n    <div class=\"row vertical-align-bottom grey\" style=\"height: 100px;\">\n      <div class=\"col-20 red\">\n        col-20\n      </div>\n    </div>\n    <br>\n  </textarea>\n  <br />\n  <p>\n    See this good example using <code>row</code> and <code>horizontal-align-left</code>.\n  </p>\n  <textarea class=\"bind-code\" mode=\"text/html\">\n    <div class=\"row horizontal-align-left grey\">\n      <div class=\"col-20 red\">\n        col-20\n      </div>\n    </div>\n    <br>\n  </textarea>\n  <br />\n  <p>\n    See this good example using <code>row</code> and <code>horizontal-align-center</code>.\n  </p>\n  <textarea class=\"bind-code\" mode=\"text/html\">\n    <div class=\"row horizontal-align-center grey\">\n      <div class=\"col-20 red\">\n        col-20\n      </div>\n    </div>\n    <br>\n  </textarea>\n  <br />\n  <p>\n    See this good example using <code>row</code> and <code>horizontal-align-right</code>.\n  </p>\n  <textarea class=\"bind-code\" mode=\"text/html\">\n    <div class=\"row horizontal-align-right grey\">\n      <div class=\"col-20 red\">\n        col-20\n      </div>\n    </div>\n    <br>\n  </textarea>\n  <br />\n  <p>\n    See this good example using <code>row</code>, <code>horizontal-align-right</code> and <code>vertical-align-center</code>.\n    <br /> You can customize all classes of horizontal-align-X and vertical-align-Y.\n  </p>\n  <textarea class=\"bind-code\" mode=\"text/html\">\n    <div class=\"row horizontal-align-right vertical-align-center grey\" style=\"height: 100px;\">\n      <div class=\"col-20 red\">\n        col-20\n      </div>\n    </div>\n    <br>\n  </textarea>\n  <br />\n  <p>\n    When you use the <code>vertical-align-*</code> classes, you need to define height off element, for example: <code>style=\"height: 100px;\"</code>.\n    <br /> Or you can use helper class <code>.full-height</code>\n  </p>\n  <textarea class=\"bind-code\" mode=\"text/html\">\n    <div class=\"row vertical-align-center grey\" style=\"height: 50px;\">\n      <div class=\"col-20 blue\">\n        col-30\n      </div>\n    </div>\n    <br>\n    <div style=\"height: 50px\">\n      <div class=\"row vertical-align-center grey full-height\">\n        <div class=\"col-20 green\">\n          col-30\n        </div>\n      </div>\n    </div>\n    <br>\n  </textarea>\n  <br />\n  <p>\n    See this good example using <a href=\"#header\">header</a>, <a href=\"#cover\">cover</a> and <a href=\"#list\">list</a> components.\n  </p>\n  <textarea class=\"bind-code\" mode=\"text/html\" header-absolute=\"true\" replace=\"body,div\" height-preview=\"550px\">\n    <body class=\"has-header grey-200\">\n      <div class=\"header blue-grey-900\">\n        <div class=\"left\">\n          <button class=\"icon ion-navicon\"></button>\n        </div>\n        <div class=\"title\">\n          Angelina Jolie\n        </div>\n        <div class=\"right\">\n          <button class=\"icon ion-android-search\"></button>\n          <button class=\"icon ion-android-more-vertical\"></button>\n        </div>\n      </div>\n      <div class=\"cover no-padding\" style=\"background-image:url(../assets/img/tombraider1.jpg)\">\n        <div class=\"space-big\"></div>\n        <div class=\"space-huge\"></div>\n        <div class=\"list gradient no-border\">\n          <div class=\"item space-small row text-white align-center\">\n            <div class=\"col\">\n              <span class=\"text-big text-bold\">75</span>\n              <p class=\"text-small text-light text-grey-400\">MOVIES</p>\n            </div>\n            <div class=\"col\">\n              <span class=\"text-big text-bold\">37K</span>\n              <p class=\"text-small text-light text-grey-400\">FOLLOWERS</p>\n            </div>\n            <div class=\"col\">\n              <span class=\"text-big text-bold\">265</span>\n              <p class=\"text-small text-light text-grey-400\">FOLLOWING</p>\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class=\"row\">\n        <div class=\"col-55 cover radius margin no-padding\" style=\"background-image:url(../assets/img/scene1.jpg)\">\n          <div class=\"right text-small padding text-red\">\n            <i class=\"icon ion-heart\"></i> 233\n          </div>\n          <div class=\"space-huge\"></div>\n          <div class=\"space-big\"></div>\n          <div class=\"bottom gradient padding radius\">\n            <h1 class=\"text-white text-small\">Cruel scene in Maleficent</h1>\n          </div>\n        </div>\n        <div class=\"col cover radius margin no-padding\" style=\"background-image:url(../assets/img/scene3.jpg)\">\n          <div class=\"right text-small padding text-red\">\n            <i class=\"icon ion-heart\"></i> 55\n          </div>\n          <div class=\"space-huge\"></div>\n          <div class=\"space-big\"></div>\n          <div class=\"bottom gradient padding radius\">\n            <h1 class=\"text-white text-small\">Good scene</h1>\n          </div>\n        </div>\n      </div>\n      <div class=\"row padding no-padding-top\">\n        <div class=\"col cover radius no-padding\" style=\"background-image:url(../assets/img/scene4.png)\">\n          <div class=\"right text-small padding text-red\">\n            <i class=\"icon ion-heart\"></i> 876\n          </div>\n          <div class=\"space-huge\"></div>\n          <div class=\"space-big\"></div>\n          <div class=\"bottom gradient padding radius\">\n            <h1 class=\"text-white text-small\">Meet the Badass Women</h1>\n          </div>\n        </div>\n      </div>\n    </body>\n  </textarea>\n  <!-- DONE -->\n  <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n  <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n  <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n  <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "grid/style.css",
    "content": "/*Create a line.*/\n.row {\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n}\n/*Create a line that the columns are distributed in an equal space.*/\n.row-between {\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-box-pack: justify;\n      -ms-flex-pack: justify;\n          justify-content: space-between;\n}\n/*Create a line that the columns are distributed in an equal space around.*/\n.row-around {\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-pack: distribute;\n      justify-content: space-around;\n}\n/*Create a stretch row, you need define height value.*/\n.row-stretch {\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-box-align: stretch;\n      -ms-flex-align: stretch;\n          align-items: stretch;\n}\n/*Create a column.*/\n.column {\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-box-orient: vertical;\n  -webkit-box-direction: normal;\n      -ms-flex-direction: column;\n          flex-direction: column;\n}\n /*Default all items will be on one line, whit this class add to row all items will wrap onto multiple lines, from top to bottom.*/\n.wrap {\n  -ms-flex-wrap: wrap;\n      flex-wrap: wrap;\n}\n/*Align col to the top(Axis Y).*/\n.vertical-align-top {\n  -webkit-box-align: start;\n      -ms-flex-align: start;\n          align-items: flex-start;\n}\n/*Align col to the center(Axis Y).*/\n.vertical-align-center {\n  -webkit-box-align: center;\n      -ms-flex-align: center;\n          align-items: center;\n}\n/*Align col to the bottom(Axis Y).*/\n.vertical-align-bottom {\n  -webkit-box-align: end;\n      -ms-flex-align: end;\n          align-items: flex-end;\n}\n/*Align col to the left(Axis X).*/\n.horizontal-align-left {\n  -webkit-box-pack: start;\n      -ms-flex-pack: start;\n          justify-content: flex-start;\n}\n/*Align col to the center(Axis X).*/\n.horizontal-align-center {\n  -webkit-box-pack: center;\n      -ms-flex-pack: center;\n          justify-content: center;\n}\n/*Align col to the right(Axis X).*/\n.horizontal-align-right {\n  -webkit-box-pack: end;\n      -ms-flex-pack: end;\n          justify-content: flex-end;\n}\n/*Center a column on the row.*/\n.row-center {\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-box-pack: center;\n      -ms-flex-pack: center;\n          justify-content: center;\n  -webkit-box-align: center;\n      -ms-flex-align: center;\n          align-items: center;\n}\n/*Create a column with remaining space of the row.*/\n.col {\n  -webkit-box-flex: 1;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  position: relative;\n}\n/*Create a column with 10% of the row.*/\n.col-10 {\n  position: relative;\n  -ms-flex-preferred-size: 10%;\n      flex-basis: 10%;\n}\n/*Create a column with 20% of the row.*/\n.col-20 {\n  position: relative;\n  -ms-flex-preferred-size: 20%;\n      flex-basis: 20%;\n}\n/*Create a column with 25% of the row.*/\n.col-25 {\n  position: relative;\n  -ms-flex-preferred-size: 25%;\n      flex-basis: 25%;\n}\n/*Create a column with 33.3333% of the row.*/\n.col-33,\n.col-34 {\n  position: relative;\n  -ms-flex-preferred-size: 33.3333%;\n      flex-basis: 33.3333%;\n}\n/*Create a column with 50% of the row.*/\n.col-50 {\n  position: relative;\n  -ms-flex-preferred-size: 50%;\n      flex-basis: 50%;\n}\n/*Create a column with 66.6666% of the row.*/\n.col-66,\n.col-67 {\n  position: relative;\n  -ms-flex-preferred-size:66.6666%;\n      flex-basis:66.6666%;\n}\n/*Create a column with 75% of the row.*/\n.col-75 {\n  position: relative;\n  -ms-flex-preferred-size: 75%;\n      flex-basis: 75%;\n}\n/*Create a column with 80% of the row.*/\n.col-80 {\n  position: relative;\n  -ms-flex-preferred-size: 80%;\n      flex-basis: 80%;\n}\n/*Create a column with 90% of the row.*/\n.col-90 {\n  position: relative;\n  -ms-flex-preferred-size: 90%;\n      flex-basis: 90%;\n}\n.full-width {\n  width: 100%;\n  margin: 0 auto\n}\n.full-height {\n  height: 100%;\n  margin: 0 auto\n}\n"
  },
  {
    "path": "header/component.json",
    "content": "{\n  \"name\":\"header\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": [\n    \"base\",\n    \"button\"\n  ]\n}\n"
  },
  {
    "path": "header/index.html",
    "content": "<!DOCTYPE html>\r\n<html>\r\n  <head>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n    <title></title>\r\n    <link href=\"https://fonts.googleapis.com/css?family=Dosis|Raleway:400,700|Roboto:300,400,900,\" rel=\"stylesheet\">\r\n    <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\r\n    <link rel=\"stylesheet\" href=\"../base/reset.css\">\r\n    <link rel=\"stylesheet\" href=\"../base/mobileui.css\">\r\n    <link rel=\"stylesheet\" href=\"../base/colors.css\">\r\n    <link rel=\"stylesheet\" href=\"../base/icons.css\">\r\n    <link rel=\"stylesheet\" href=\"../button/style.css\">\r\n    <link rel=\"stylesheet\" href=\"../list/style.css\">\r\n    <link rel=\"stylesheet\" href=\"style.css\">\r\n    <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\r\n    <style>\r\n      .content-land { margin-left:50px}\r\n    </style>\r\n  </head>\r\n  <body class=\"content-land\">\r\n    <!-- BEGIN -->\r\n    <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">Header</h2>\r\n    <p>\r\n      Headers are fixed regions at the top of a screen that can contain a title label, and left/right buttons for navigation or to carry out various actions.\r\n    </p>\r\n    <p>\r\n      To use this component you need install with the command:\r\n    </p>\r\n    <div class=\"dependency tooltip\">\r\n      <strong>Dependency:</strong> <code>base</code> and <code>button</code>.\r\n      <span class=\"tooltiptext\">The dependencies will be installed together with this module</span>\r\n    </div>\r\n    <pre>mobileui install header</pre>\r\n    <!-- _DOC_GENERATE_CSS_DOC -->\r\n    <p>You can use all features the <a href=\"#base\">base</a> MobileUI in this component.</p>\r\n\r\n\r\n<textarea class=\"bind-code\" mode=\"text/html\">\r\n<div class=\"header purple\">\r\n  <button class=\"left icon ion-navicon\" name=\"button\"></button>\r\n  <h1>Application title</h1>\r\n</div></textarea>\r\n\r\n  <p>\r\n    You can put the title in center or right add class <code>align-center</code> or <code>align-right</code>.\r\n  </p>\r\n<textarea class=\"bind-code\" mode=\"text/html\">\r\n<div class=\"header red\">\r\n  <h1 class=\"align-center\">Application title in center</h1>\r\n</div></textarea>\r\n\r\n  <p>\r\n  For put buttons in left and right you need create a div with class <code>left</code> or <code>right</code>.\r\n  </p>\r\n<textarea class=\"bind-code\" mode=\"text/html\">\r\n<div class=\"header blue\">\r\n  <div class=\"left\">\r\n    <button class=\"icon ion-navicon-round\"></button>\r\n  </div>\r\n  <h1>Application title</h1>\r\n  <div class=\"right\">\r\n    <button class=\"icon ion-search\"></button>\r\n    <button class=\"icon ion-android-more-vertical\"></button>\r\n  </div>\r\n</div></textarea>\r\n  <p>\r\n    You can put buttons with text and another options of buttons settings, see section <a href=\"#button\">Button</a>.\r\n  </p>\r\n<textarea class=\"bind-code\" mode=\"text/html\">\r\n<div class=\"header blue-grey\">\r\n  <div class=\"left\">\r\n    <button class=\"icon-text blue-grey-900\">\r\n      <i class=\"icon ion-android-arrow-back\"></i>\r\n      Back\r\n    </button>\r\n  </div>\r\n  <div class=\"right\">\r\n    <button class=\"cyan\">New</button>\r\n  </div>\r\n</div></textarea>\r\n  <p>\r\n    If you need the header transparent just add text color class.\r\n  </p>\r\n<textarea class=\"bind-code\" mode=\"text/html\" header-absolute=\"true\">\r\n<div class=\"header text-white\">\r\n  <div class=\"left\">\r\n    <button class=\"icon ion-navicon-round\"></button>\r\n  </div>\r\n  <h1>Application title</h1>\r\n  <div class=\"right\">\r\n    <button class=\"icon ion-search\"></button>\r\n    <button class=\"icon ion-android-more-vertical\"></button>\r\n  </div>\r\n</div>\r\n<img src=\"../assets/img/city.jpg\" /></textarea>\r\n  <p>\r\n    If you don't use transparent header you need add class <code>has-header</code> in your <code>content</code> or div for top position add margin. For this example the component <a href=\"#list\">list</a> was used too.\r\n  </p>\r\n  <p>For this example you need to install the following components:</p>\r\n  <pre>mobileui install header list</pre>\r\n<textarea class=\"bind-code\" mode=\"text/html\" header-absolute=\"true\" replace=\"body,div\">\r\n<body class=\"pink-50\">\r\n  <div class=\"header pink\">\r\n    <div class=\"left\">\r\n      <button class=\"icon ion-android-arrow-back\"></button>\r\n    </div>\r\n    <h2>Contacts</h2>\r\n    <p>List of your contacts</p>\r\n  </div>\r\n  <div class=\"content has-header padding\">\r\n    <p>List of contacts.</p>\r\n    <div class=\"list white\">\r\n      <div class=\"item\">\r\n        <h2>Fábio Rogério</h2>\r\n        <p>fabio.rogerio@mail.com</p>\r\n      </div>\r\n      <div class=\"item\">\r\n        <h2>Silva José</h2>\r\n        <p>silva.jose@mail.com</p>\r\n      </div>\r\n      <div class=\"item\">\r\n        <h2>Rosangela Oliveira</h2>\r\n        <p>rosangela.oliveira@mail.com</p>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</body></textarea>\r\n  <p>A secondary header bar can be placed below the original header bar. There are quite a few more ways to customize Headers.</p>\r\n<textarea class=\"bind-code\" mode=\"text/html\" header-absolute=\"true\" replace=\"body,div\">\r\n<body class=\"has-header has-sub-header grey-50 padding\">\r\n  <div class=\"header green-900\">\r\n    <div class=\"left\">\r\n      <button class=\"icon ion-android-arrow-back\"></button>\r\n    </div>\r\n    <div class=\"title\">\r\n       Contacts\r\n    </div>\r\n    </div>\r\n    <div class=\"header sub green-800\">\r\n    <div class=\"title\">\r\n       List of contacts\r\n    </div>\r\n  </div>\r\n  <p>Content here.</p>\r\n</body></textarea>\r\n  <p>You can add group of buttons in header.</p>\r\n<textarea class=\"bind-code\" mode=\"text/html\" header-absolute=\"true\" replace=\"body,div\">\r\n<body class=\"has-header has-sub-header grey-50 padding\">\r\n<div class=\"header indigo\">\r\n  <div class=\"left\">\r\n    <button class=\"icon ion-android-arrow-back\"></button>\r\n  </div>\r\n  <div class=\"title\">\r\n     Contacts\r\n  </div>\r\n  </div>\r\n  <div class=\"header sub indigo-400\">\r\n    <div class=\"buttons-group full small\">\r\n      <button class=\"indigo-400 border-white radius-left\">Left</button>\r\n      <button class=\"indigo-400 border-white\">Middle</button>\r\n      <button class=\"indigo-400 border-white radius-right\">Right</button>\r\n    </div>\r\n</div>\r\n<p>Content here.</p>\r\n</body></textarea>\r\n  <p>\r\n    You can create a header in bottom of screen, just add class <code>footer</code>.\r\n  </p>\r\n<textarea class=\"bind-code\" mode=\"text/html\" header-absolute=\"true\" replace=\"body,div\" height-preview=\"400px\">\r\n<body class=\"has-footer has-sub-footer grey-50 padding\">\r\n  <div class=\"footer green-900\">\r\n    <div class=\"right\">\r\n      <button class=\"icon ion-gear-b\"></button>\r\n    </div>\r\n    <div class=\"title\">\r\n       Device connected\r\n    </div>\r\n    </div>\r\n    <div class=\"footer sub green-800\">\r\n    <div class=\"title\">\r\n       All items are ready!\r\n    </div>\r\n  </div>\r\n  <p>Content here.</p>\r\n</body></textarea>\r\n    <!-- DONE -->\r\n    <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\r\n    <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\r\n    <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\r\n    <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\r\n  </body>\r\n</html>\r\n"
  },
  {
    "path": "header/style.css",
    "content": "/*Create a fixed bar at the top of the page.*/\r\n.footer, .header {\r\n  font-size: 18px;\r\n  display: inline-block;\r\n  width: 100%;\r\n  position: fixed;\r\n  top: 0;\r\n  left: 0;\r\n  height: 52px;\r\n  z-index: 9;\r\n}\r\n/*Create a fixed bar at the bottom of the page.*/\r\n.footer {\r\n  top: initial;\r\n  bottom: 0;\r\n}\r\n/*If used with <code>header</code> create a fixed sub-bar at the top of the page, if using with <code>footer</code> creates a fixed sub-bar at the bottom.*/\r\n.header.sub {\r\n  top:52px;\r\n}\r\n.footer.sub {\r\n  top: initial;\r\n  bottom: 52px;\r\n}\r\n/*Used in the parent element of the <code>header</code>, or body element, to define that the page uses <code>header</code>.*/\r\n.has-header {\r\n  padding-top: 52px !important;\r\n}\r\n/*Used in the parent element of the <code>header</code> and <code>sub</code>, or body element, to define that the page uses <code>sub</code>.*/\r\n.has-header.has-sub-header {\r\n  padding-top: 104px !important;\r\n}\r\n/*Used in the parent element of the <code>header</code> and <code>footer</code>, or body element, to define that the page uses <code>header</code> in bottom.*/\r\n.has-footer {\r\n  padding-bottom: 52px !important\r\n}\r\n/*Used in the parent element of the <code>header</code> with <code>sub</code> and <code>bottom</code>, or body element, to define that the page uses <code>sub</code> in bottom.*/\r\n.has-footer.has-sub-footer {\r\n  padding-bottom: 104px !important\r\n}\r\n.header .left, .header .right, .header .title, .header h1, .footer .left, .footer .right, .footer .title, .footer h1 {\r\n  margin-top: 15px;\r\n  margin-bottom: 5px;\r\n}\r\n/*Set a fixed size for an image.*/\r\n.header .avatar {\r\n  height: 40px;\r\n  margin-top: -8px;\r\n  margin-left: 4px;\r\n}\r\n/*Add big border in element.*/\r\n.header .border-big {\r\n  border-width: 2px;\r\n  border-style: solid;\r\n}\r\n.header h2, .footer h2 {\r\n  padding-top: 8px;\r\n  padding-left: 10px;\r\n}\r\n.header p, .footer p {\r\n  padding-left: 10px;\r\n  margin: 0;\r\n  margin-top: -4px;\r\n}\r\n.header .left, .footer .left {\r\n  padding-left: 5px\r\n}\r\n.header .right, .footer .right {\r\n  padding-right: 5px\r\n}\r\n/*Create a title in the header, you can just use h1 element.*/\r\n.header h1, .header .title, .footer h1, .footer .title {\r\n  margin-bottom: 15px;\r\n  padding-left: 10px;\r\n  padding-right: 15px;\r\n  display: inline-block;\r\n}\r\n.header button, .footer button {\r\n  margin-top: -10px;\r\n}\r\n.header button.icon, .footer button.icon {\r\n  font-size: 30px;\r\n  margin-top: -10px;\r\n  z-index: 99;\r\n  background: none;\r\n  border: none;\r\n  padding: 0 6px;\r\n}\r\n.header button.icon:not([class*=red]):not([class*=pink]):not([class*=white]):not([class*=purple]):not([class*=indigo]):not([class*=blue]):not([class*=cyan]):not([class*=teal]):not([class*=green]):not([class*=lime]):not([class*=yellow]):not([class*=amber]):not([class*=orange]):not([class*=brown]):not([class*=grey]):not([class*=black]):not([class*=white]),\r\n.footer button.icon:not([class*=red]):not([class*=pink]):not([class*=white]):not([class*=purple]):not([class*=indigo]):not([class*=blue]):not([class*=cyan]):not([class*=teal]):not([class*=green]):not([class*=lime]):not([class*=yellow]):not([class*=amber]):not([class*=orange]):not([class*=brown]):not([class*=grey]):not([class*=black]):not([class*=white]) {\r\n  color: #fff;\r\n}\r\n.header button.icon.left, .footer button.icon.left,\r\n.header button.icon.right, .footer button.icon.right {\r\n  margin-top: 5px;\r\n  margin-bottom: 5px;\r\n}\r\n.header button.icon.left, .footer button.icon.left {\r\n  margin-left: 5px;\r\n}\r\n.header button.icon.right, .footer button.icon.right {\r\n  margin-right: 5px;\r\n}\r\n.header .title.align-center, .footer .title.align-center,\r\n.header h1.align-center, .footer h1.align-center,\r\n.header p.align-center, .footer p.align-center {\r\n  width: 100%;\r\n  position: inherit;\r\n  padding-right: 15px;\r\n  left: 0;\r\n  z-index: 9;\r\n}\r\n/*Create a floating badge next to an icon.*/\r\n.header .icon-badge, .footer .icon-badge {\r\n  position: absolute;\r\n  margin-left: -6px;\r\n  margin-top: -8px;\r\n  border-radius: 8px;\r\n  z-index: 999;\r\n}\r\n.header .buttons-group, .footer .buttons-group {\r\n  margin-top: 15px;\r\n  margin-left: 5px;\r\n  margin-right: 5px;\r\n}\r\n.header .buttons-group.small, .footer .buttons-group.small {\r\n  margin-top: 20px;\r\n  margin-left: 10px;\r\n  margin-right: 10px;\r\n}\r\n.header input::-webkit-input-placeholder {\r\n  color: rgba(0, 0, 0, 0.8);\r\n}\r\n/*Defines a light color for the placeholder.*/\r\n.header input.placeholder-white::-webkit-input-placeholder {\r\n  color: rgba(255, 255, 255, 0.8);\r\n}\r\n.header input {\r\n  padding: 15px;\r\n  position: absolute;\r\n}\r\n.header .left+input {\r\n  padding-right: 50px;\r\n}\r\n"
  },
  {
    "path": "horizontal-scroll/component.json",
    "content": "{\n  \"name\":\"horizontal-scroll\",\n  \"author\": \"Yash-Handa\",\n  \"dependencies\": [\n    \"base\"\n  ]\n}\n"
  },
  {
    "path": "horizontal-scroll/index.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title></title>\n    <link href=\"https://fonts.googleapis.com/css?family=Dosis|Raleway:400,700|Roboto:300,400,900,\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n    <link rel=\"stylesheet\" href=\"../base/reset.css\">\n    <link rel=\"stylesheet\" href=\"../base/mobileui.css\">\n    <link rel=\"stylesheet\" href=\"../base/colors.css\">\n    <link rel=\"stylesheet\" href=\"../base/icons.css\">\n    <link rel=\"stylesheet\" href=\"../header/style.css\">\n    <link rel=\"stylesheet\" href=\"../button/style.css\">\n    <link rel=\"stylesheet\" href=\"../cover/style.css\">\n    <link rel=\"stylesheet\" href=\"style.css\">\n    <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n    <style>\n      .content {\n        margin-left:50px;\n        width: -webkit-calc(100% - 50px);\n        width: -moz-calc(100% - 50px);\n        width: calc(100% - 50px);\n      }\n    </style>\n  </head>\n  <body class=\"content\">\n    <!-- BEGIN -->\n    <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">Horizontal Scroll</h2>\n    <p>\n      To use this component you need install with the command:\n    </p>\n    <div class=\"dependency tooltip\">\n    <strong>Dependency:</strong> <code>base</code>.\n    <span class=\"tooltiptext\">The dependencies will be installed together with this module</span>\n    </div>\n    <pre>mobileui install horizontal-scroll</pre>\n    <!-- _DOC_GENERATE_CSS_DOC -->\n    <p>You can use all features the <a href=\"#base\">base</a> MobileUI in this component.</p>\n\n<textarea class=\"bind-code\" mode=\"text/html\">\n<div class=\"horizontal-scroll\">\n  <div class=\"item\">\n    <h2>Jeanette Fletcher</h2>\n    <p class=\"text-grey-500\">jeanette.fletcher15@example.com</p>\n  </div>\n  <div class=\"item\">\n    <h2>Chad Black</h2>\n    <p class=\"text-grey-500\">chad.black48@example.com</p>\n  </div>\n  <div class=\"item\">\n    <h2>Carter hudson</h2>\n    <p class=\"text-grey-500\">carter.hudson17@example.com</p>\n  </div>\n  <div class=\"item\">\n    <h2>Vanessa brown</h2>\n    <p class=\"text-grey-500\">vanessa.brown96@example.com</p>\n  </div>\n</div></textarea>\n\n<p>You can add class <code>full</code>, <code>half</code>, <code>three-fourth</code>, <code>one-fourth</code> to an <code>item</code> class to manipulate its width with respect to the horizontal-scroll component.</p>\n<textarea class=\"bind-code\" mode=\"text/html\">\n<div class=\"horizontal-scroll\">\n  <div class=\"item three-fourth\">\n    <h2>Jeanette Fletcher</h2>\n    <p class=\"text-grey-500\">jeanette.fletcher15@example.com</p>\n  </div>\n  <div class=\"item\">\n    <h2>Chad Black</h2>\n    <p class=\"text-grey-500\">chad.black48@example.com</p>\n  </div>\n  <div class=\"item three-fourth\">\n    <h2>Carter hudson</h2>\n    <p class=\"text-grey-500\">carter.hudson17@example.com</p>\n  </div>\n  <div class=\"item\">\n    <h2>Vanessa brown</h2>\n    <p class=\"text-grey-500\">vanessa.brown96@example.com</p>\n  </div>\n</div></textarea>\n\n\n    <p>\n      You can put images and icons in Horizontal Scroll.\n    </p>\n<textarea class=\"bind-code\" mode=\"text/html\">\n<div class=\"horizontal-scroll\">\n  <div class=\"item\">\n    <div class=\"left\">\n      <img class=\"avatar circle\" src=\"../assets/img/80.jpg\">\n    </div>\n    <h2>Jeanette Fletcher</h2>\n    <p class=\"text-grey-500\">jeanette.fletcher15@example.com</p>\n    <div class=\"right text-grey text-small align-right\">\n      <i class=\"icon ion-android-time\"></i> 2h\n    </div>\n  </div>\n  <div class=\"item\">\n    <div class=\"right\">\n      <img class=\"avatar radius\" src=\"../assets/img/80.jpg\">\n    </div>\n    <h2>Chad Black</h2>\n    <p class=\"text-grey-500\">chad.black48@example.com</p>\n  </div>\n  <div class=\"item\">\n    <div class=\"left\">\n      <i class=\"icon ion-home\"></i>\n    </div>\n    <h2 class=\"text-green text-strong\">Carter hudson</h2>\n    <p class=\"text-grey-500\">carter.hudson17@example.com</p>\n    <div class=\"right align-right text-small\">\n      <ul>\n        <li class=\"text-green text-strong\">2:30PM</li>\n        <li class=\" text-grey-300\">30 minutes ago</li>\n      </ul>\n    </div>\n  </div>\n  <div class=\"item\">\n    <div class=\"left\">\n      <div class=\"icon-circle text-red border-red\">\n        <i class=\"icon ion-home\"></i>\n      </div>\n    </div>\n    <h2>Vanessa brown</h2>\n    <p class=\"text-grey-500\">vanessa.brown96@example.com</p>\n  </div>\n</div></textarea>\n\n\n    <p>You can combinate with others components and class.</p>\n<textarea class=\"bind-code\" mode=\"text/html\" replace=\"body,div\">\n<body class=\"padding grey-100\">\n  <h1 class=\"text-bold\">List of contacts</h1>\n  <p>List of your contacts saved in this device.</p>\n  <div class=\"horizontal-scroll radius white\">\n    <div class=\"item\">\n      <div class=\"left\">\n        <img class=\"avatar radius\" src=\"../assets/img/80.jpg\">\n      </div>\n      <h2>Jeanette Fletcher</h2>\n      <p class=\"text-grey-500\">jeanette.fletcher15@example.com</p>\n      <div class=\"right\">\n          <i class=\"icon ion-ios-arrow-right\"></i>\n      </div>\n    </div>\n    <div class=\"item\">\n      <h2>Chad Black</h2>\n      <div class=\"right\">\n        <button class=\"blue small radius\">Edit</button>\n      </div>\n    </div>\n    <div class=\"item\">\n      <img class=\"avatar radius left\" src=\"../assets/img/33.jpg\">\n      <i class=\"right align-top icon ion-ios-arrow-right\"></i>\n      <h2>Carter Hudson</h2>\n      <p class=\"text-grey-500\">Lorem ipsum dolor sit amet, consectetur adipisicing\n        elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>\n    </div>\n    <div class=\"item\">\n      <span class=\"avatar-badge text-small red radius padding\">4</span>\n      <img class=\"avatar circle left\" src=\"../assets/img/96.jpg\">\n      <h2>Juster Mark Slow</h2>\n      <span class=\"text-small green radius padding\">new</span>\n      <span class=\"text-small purple radius padding\">family</span>\n      <span class=\"text-small pink radius padding\">university</span>\n    </div>\n  </div>\n</body></textarea>\n\n\n    <p>Another example of a combination of components <a href=\"#header\">header</a>, <a href=\"#button\">button</a> and <a href=\"#cover\">cover</a>.</p>\n<textarea class=\"bind-code\" mode=\"text/html\" header-absolute=\"true\" hidden=\"true\">\n<div class=\"header text-white\">\n  <div class=\"left\">\n    <button class=\"icon ion-navicon-round\"></button>\n  </div>\n  <div class=\"right\">\n    <span class=\"icon-badge text-small red radius padding\">3</span>\n    <button class=\"icon ion-chatbox\"></button>\n  </div>\n</div>\n<div class=\"cover padding align-center\" style=\"background-image:url(../assets/img/backtop.png)\">\n  <div class=\"space\"></div>\n  <img class=\"avatar circle border-white shadow\" src=\"../assets/img/33.jpg\">\n  <h1 class=\"text-white\">Carter Hudson</h1>\n  <div class=\"space\"></div>\n  <div class=\"buttons-group full\">\n    <button class=\"grey-200 text-red-600 radius-left\">Contacts</button>\n    <button class=\"grey-900 text-grey-700 radius-right\">Groups</button>\n  </div>\n</div>\n<div class=\"horizontal-scroll\">\n  <div class=\"item\">\n    <div class=\"left\">\n      <img class=\"avatar circle\" src=\"../assets/img/80.jpg\">\n    </div>\n    <h2>Jeanette Fletcher</h2>\n    <p class=\"text-grey\">+55 7979 325 655</p>\n    <div class=\"right\">\n      <small class=\"text-grey\">\n        5 min\n        <i class=\"icon ion-android-happy text-green\"></i>\n      </small>\n    </div>\n  </div>\n  <div class=\"item\">\n    <div class=\"left\">\n      <img class=\"avatar circle\" src=\"../assets/img/53.jpg\">\n    </div>\n    <h2>Emilio Dias</h2>\n    <p class=\"text-grey\">+55 8989 325 655</p>\n    <div class=\"right\">\n      <small class=\"text-grey\">\n        12 min\n        <i class=\"icon ion-android-sad red\"></i>\n      </small>\n    </div>\n  </div>\n  <div class=\"item\">\n    <div class=\"left\">\n      <img class=\"avatar circle\" src=\"../assets/img/96.jpg\">\n    </div>\n    <h2>Marcos Paulo</h2>\n    <p class=\"text-grey\">+55 1245 325 655</p>\n    <div class=\"right\">\n      <small class=\"text-grey\">\n        32 min\n        <i class=\"icon ion-android-sad red\"></i>\n      </small>\n    </div>\n  </div>\n  <div class=\"item\">\n    <div class=\"left\">\n      <img class=\"avatar circle\" src=\"../assets/img/33.jpg\">\n    </div>\n    <h2>Carter Hudson</h2>\n    <p class=\"text-grey\">+55 8797 325 655</p>\n    <div class=\"right\">\n      <small class=\"text-grey\">\n        1h 12 min\n        <i class=\"icon ion-android-happy text-green\"></i>\n      </small>\n    </div>\n  </div>\n\n\n</div></textarea>\n<p>You can add class <code>mark</code> for change color border.</p>\n<textarea class=\"bind-code\" mode=\"text/html\" header-absolute=\"true\" hidden=\"true\">\n<div class=\"horizontal-scroll padding grey-100\">\n  <div class=\"item white mark border-green margin-right shadow\">\n    <h2><strong>Jeanette Fletcher</strong></h2>\n    <p class=\"text-grey\">+55 7979 325 655</p>\n    <p class=\"text-green\">Last activity on 5 minutes ago.</p>\n  </div>\n  <div class=\"item white mark border-light-blue margin-right shadow\">\n    <h2><strong>Jerald Dustin</strong></h2>\n    <p class=\"text-grey\">+55 8779 325 655</p>\n    <p class=\"text-light-blue\">Last activity on 15 minutes ago.</p>\n  </div>\n  <div class=\"item white mark border-purple margin-right shadow\">\n    <h2><strong>Shawn Todd</strong></h2>\n    <p class=\"text-grey\">+55 7964 325 655</p>\n    <p class=\"text-purple\">Last activity on 5 hours ago.</p>\n  </div>\n  <div class=\"item white mark border-orange margin-right shadow\">\n    <h2><strong>Jaden Taylor</strong></h2>\n    <p class=\"text-grey\">+55 7964 325 655</p>\n    <p class=\"text-orange\">Last activity on 1 day ago.</p>\n  </div>\n</div></textarea>\n\n</div></textarea>\n<p>Same Example as above but with no scroll bar by using class<code>no-scroll-bar</code> on horizontal-scroll component.</p>\n<textarea class=\"bind-code\" mode=\"text/html\" header-absolute=\"true\" hidden=\"true\">\n<div class=\"horizontal-scroll no-scroll-bar padding grey-100\">\n  <div class=\"item white mark border-green margin-right shadow\">\n    <h2><strong>Jeanette Fletcher</strong></h2>\n    <p class=\"text-grey\">+55 7979 325 655</p>\n    <p class=\"text-green\">Last activity on 5 minutes ago.</p>\n  </div>\n  <div class=\"item white mark border-light-blue margin-right shadow\">\n    <h2><strong>Jerald Dustin</strong></h2>\n    <p class=\"text-grey\">+55 8779 325 655</p>\n    <p class=\"text-light-blue\">Last activity on 15 minutes ago.</p>\n  </div>\n  <div class=\"item white mark border-purple margin-right shadow\">\n    <h2><strong>Shawn Todd</strong></h2>\n    <p class=\"text-grey\">+55 7964 325 655</p>\n    <p class=\"text-purple\">Last activity on 5 hours ago.</p>\n  </div>\n  <div class=\"item white mark border-orange margin-right shadow\">\n    <h2><strong>Jaden Taylor</strong></h2>\n    <p class=\"text-grey\">+55 7964 325 655</p>\n    <p class=\"text-orange\">Last activity on 1 day ago.</p>\n  </div>\n</div></textarea>\n\n    <!-- DONE -->\n    <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n    <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n    <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n    <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "horizontal-scroll/style.css",
    "content": "/*Define an element as horizontal-scroll. This feature depends on the <code>item</code> to function properly.*/\n.horizontal-scroll {\n  width: 100%;\n  position: relative;\n  border: 1px solid #ddd;\n  display: flex;\n  display: -moz-flex;\n  display: -ms-flexbox;\n  flex-wrap: nowrap;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n/* Hides the Scroll Bar. This is for webkit browsers only, however. */\n.horizontal-scroll.no-scroll-bar::-webkit-scrollbar {\n  display: none;\n}\n\n/*Define an element as item. This feature depends on the <code>horizontal-scroll</code> to function properly.*/\n.horizontal-scroll .item {\n  padding: 15px;\n  display: inline-block;\n  flex: 0 0 auto;\n  width: 100%;\n  border-right: 1px solid #ddd;\n  position: relative;\n  font-size: 18px;\n}\n\n.horizontal-scroll .item.hidden {\n  display: none;\n}\n\n.horizontal-scroll .item.mark {\n  border-right: 0;\n  border-bottom: 0;\n  border-top: 0;\n}\n/*Block line space with left avatar.*/\n.item .block {\n\tdisplay: -webkit-box;\n\tdisplay: flex;\n}\n.horizontal-scroll .item.mark.margin-right {\n  border-right: 0;\n  margin-right: 10px;\n}\n\n/*Define a small space between the left and right elements.*/\n.horizontal-scroll .item.space-small {\n  padding-left: 5px;\n  padding-right: 5px;\n}\n\n.horizontal-scroll.space-small .item {\n  padding-left: 5px;\n  padding-right: 5px;\n}\n\n/*Remove space in left item.*/\n.horizontal-scroll .item.no-space-left {\n  padding-left: 0 !important;\n}\n\n/*Remove space in right item.*/\n.horizontal-scroll .item.no-space-right {\n  padding-right: 0 !important;\n}\n\n.horizontal-scroll.no-space-left .item {\n  padding-left: 0 !important;\n}\n\n.horizontal-scroll.no-space-right .item {\n  padding-right: 0 !important;\n}\n\n.horizontal-scroll.no-space-top .item {\n  padding-top: 0 !important;\n}\n\n.horizontal-scroll.no-space-bottom .item {\n  padding-bottom: 0 !important;\n}\n\n.horizontal-scroll.no-space .item {\n  padding-left: 0 !important;\n  padding-right: 0 !important;\n  padding-top: 0 !important;\n  padding-bottom: 0 !important;\n}\n\n.horizontal-scroll .item.row {\n  display: -moz-flex;\n  display: -ms-flexbox;\n  display: flex;\n}\n\n/* Display the element in full width of the container ( default ) */\n.horizontal-scroll .item.full {\n  width: 100%;\n}\n\n/* Display the element in 75% width of the container */\n.horizontal-scroll .item.three-fourth {\n  width: 75%;\n}\n\n/* Display the element in 50% width of the container */\n.horizontal-scroll .item.half {\n  width: 50%;\n}\n\n/* Display the element in 25% width of the container */\n.horizontal-scroll .item.one-fourth {\n  width: 25%;\n}\n\n.horizontal-scroll .item h1,\n.horizontal-scroll .item h2 {\n  font-size: 16px;\n  margin: 0;\n  padding: 0;\n}\n\n.horizontal-scroll .item h1 {\n  margin-top: 7px;\n}\n\n.horizontal-scroll .item p {\n  font-size: 14px;\n  margin: 0;\n  padding: 0;\n  line-height: 20px;\n}\n\n.horizontal-scroll .left {\n  margin-right: 10px;\n  min-width: 25px;\n}\n\n.horizontal-scroll .right {\n  margin-right: 20px;\n  position: absolute;\n  top: 0;\n  right: 0;\n  height: 100%;\n  display: -ms-flexbox;\n  display: -webkit-flex;\n  display: flex;\n  -ms-flex-align: center;\n  -webkit-align-items: center;\n  -webkit-box-align: center;\n  align-items: center;\n}\n\n.horizontal-scroll .right i {\n  margin-left: 5px;\n}\n\n.horizontal-scroll .align-top {\n  -ms-flex-align: center;\n  -webkit-align-items: center;\n  align-items: baseline;\n  margin-top: 10px;\n}\n\n/*Set a fixed size for an image.*/\n.horizontal-scroll .avatar {\n  height: 50px;\n}\n\n/*Set a floating badge above the image.*/\n.avatar-badge {\n  position: absolute;\n  margin-left: -4px;\n  margin-top: -3px;\n  border-radius: 8px;\n}\n\n.horizontal-scroll .item small,\n.horizontal-scroll .item small .icon {\n  font-size: 14px;\n}\n\n.horizontal-scroll .item .icon {\n  font-size: 18px;\n}\n\n.horizontal-scroll .item .icon.text-huge {\n  font-size: 32px;\n}\n\n.horizontal-scroll .left .icon,\n.horizontal-scroll .right .icon {\n  vertical-align: -webkit-baseline-middle;\n}\n\n/*Add big border in item or element.*/\n.horizontal-scroll .border-big {\n  border-width: 3px;\n  border-style: solid;\n}\n\n/*Define that a .horizontal-scroll or an item has no borders.*/\n.horizontal-scroll.no-border {\n  border: 0;\n}\n/*Define that a .horizontal-scroll or an item has a right border.*/\n.horizontal-scroll.no-border .item.border-right,\n.horizontal-scroll .item.no-border.border-right {\n  border-right-width: 1px;\n  border-right-style: solid;\n}\n.horizontal-scroll.no-border .item,\n.horizontal-scroll .item.no-border {\n  border: none;\n}\n\n.horizontal-scroll .item:last-child {\n  border-right:0;\n}\n\n.horizontal-scroll .item .right .icon,\n.horizontal-scroll .item .right.icon {\n  font-size: 24px;\n  padding: 0;\n  margin: 0;\n}"
  },
  {
    "path": "include/component.json",
    "content": "{\n  \"name\":\"include\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": []\n}\n"
  },
  {
    "path": "include/index.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <title></title>\n  <link href=\"https://fonts.googleapis.com/css?family=Dosis|Raleway:400,700|Roboto:300,400,500,600,900,\" rel=\"stylesheet\">\n  <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n  <link rel=\"stylesheet\" href=\"../base/reset.css\">\n  <link rel=\"stylesheet\" href=\"../base/mobileui.css\">\n  <link rel=\"stylesheet\" href=\"../base/colors.css\">\n  <link rel=\"stylesheet\" href=\"../base/icons.css\">\n  <link rel=\"stylesheet\" href=\"../header/style.css\">\n  <link rel=\"stylesheet\" href=\"../button/style.css\">\n  <link rel=\"stylesheet\" href=\"../list/style.css\">\n  <link rel=\"stylesheet\" href=\"../cover/style.css\">\n  <link rel=\"stylesheet\" href=\"../alert/style.css\">\n  <link rel=\"stylesheet\" href=\"style.css\">\n  <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n  <style>\n    .content {\n      margin-left: 50px\n    }\n  </style>\n  <script type=\"text/javascript\" src=\"script.js\"></script>\n</head>\n<body class=\"content\">\n  <!-- BEGIN -->\n  <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">Include</h2>\n  <p>\n    This component include an external file HTML in your page.\n  </p>\n  <p>\n    To use this component you need install with the command:\n  </p>\n  <pre>mobileui install include</pre>\n  <!-- _DOC_GENERATE_CSS_DOC -->\n<textarea class=\"bind-code\" mode=\"text/html\" replace=\"body,div|padding,padding body\" height-preview=\"200px\" border=\"true\">\n<body class=\"padding\">\n  <div include=\"myfile1\"></div>\n  <button class=\"teal full radius margin-top margin-bottom\" onclick=\"include('myFrame','myfile2')\">\n    Include another file\n  </button>\n  <div id=\"myFrame\"></div>\n</body></textarea>\n    <strong>myfile1.html</strong>\n<textarea class=\"bind-just-code\" mode=\"text/html\">\n<strong>This is my file</strong>\n<p>Included when load file.</p>\n<hr></textarea>\n    <strong>myfile2.html</strong>\n<textarea class=\"bind-just-code\" mode=\"text/html\">\n<strong>This is another file</strong>\n<p>Included by click button.</p>\n<hr></textarea>\n<p>\n  You can invoke callback function after include page: <code>include('myFrame','myfile', myFunctionCallback)</code>\n</p>\n  <!-- DONE -->\n  <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n  <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n  <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n  <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "include/myfile1.html",
    "content": "<strong>This is my file</strong>\n<p>Included when load file.</p>\n<hr>\n"
  },
  {
    "path": "include/myfile2.html",
    "content": "<strong>This is another file</strong>\n<p>Included by click button.</p>\n<hr>\n"
  },
  {
    "path": "include/script.js",
    "content": "window.include = function(element, file, callback){\n  if(file.indexOf('.html') < 0){\n    file =file+'.html';\n  }\n  var xhttp = new XMLHttpRequest();\n  xhttp.onload = function() {\n    if (this.readyState == 4) {\n      var page = this.responseText;\n      var div = typeof(element) === 'string' ? document.getElementById(element) : element;\n      console.log(div)\n      if(div){\n          div.innerHTML = page\n      }\n      if(callback){\n        callback();\n      }\n    }\n  };\n  xhttp.open(\"GET\", file + '?cache='+new Date().getTime(), true);\n  xhttp.send();\n}\nwindow.bindIncludeEvent = function(){\n  document.querySelectorAll('[include]').forEach(function(element, i){\n    window.include(element, element.getAttribute('include'));\n  });\n}\nwindow.bindIncludeEvent();\n\ndocument.addEventListener(\"openPage\", function(){\n  window.bindIncludeEvent();\n});\n"
  },
  {
    "path": "include/style.css",
    "content": ""
  },
  {
    "path": "input/component.json",
    "content": "{\n  \"name\":\"input\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": [\n    \"base\",\n    \"list\"\n  ]\n}\n"
  },
  {
    "path": "input/index.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title></title>\n    <link href=\"https://fonts.googleapis.com/css?family=Chewy|Dosis|Raleway:400,700|Roboto:300,400,900,\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n    <link rel=\"stylesheet\" href=\"../base/reset.css\">\n    <link rel=\"stylesheet\" href=\"../base/mobileui.css\">\n    <link rel=\"stylesheet\" href=\"../base/colors.css\">\n    <link rel=\"stylesheet\" href=\"../base/icons.css\">\n    <link rel=\"stylesheet\" href=\"../header/style.css\">\n    <link rel=\"stylesheet\" href=\"../button/style.css\">\n    <link rel=\"stylesheet\" href=\"../list/style.css\">\n    <link rel=\"stylesheet\" href=\"../cover/style.css\">\n    <link rel=\"stylesheet\" href=\"../grid/style.css\">\n    <link rel=\"stylesheet\" href=\"style.css\">\n    <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n    <style>\n      .content { margin-left:50px}\n    </style>\n    <script type=\"text/javascript\" src=\"../base/base.js\"></script>\n    <script type=\"text/javascript\" src=\"script.js\"></script>\n  </head>\n  <body class=\"content\">\n    <!-- BEGIN -->\n    <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">Input</h2>\n    <p>\n      Inputs are essential in an application to collect user data, so we need to worry about the layout and MobileUI does it for you.\n    </p>\n    <p>\n      To use this component you need install with the command:\n    </p>\n    <div class=\"dependency tooltip\">\n      <strong>Dependency:</strong> <code>base</code> and <code>list</code>.\n      <span class=\"tooltiptext\">The dependencies will be installed together with this module</span>\n    </div>\n    <pre>mobileui install input</pre>\n    <!-- _DOC_GENERATE_CSS_DOC -->\n    <p>You can use all features the <a href=\"#base\">base</a> and <a href=\"#list\">list</a> components in this component.</p>\n<textarea class=\"bind-code\" mode=\"text/html\">\n<div class=\"list\">\n  <div class=\"item\">\n    <input type=\"text\" placeholder=\"First name\">\n  </div>\n  <div class=\"item\">\n    <input type=\"text\" placeholder=\"Last name\">\n  </div>\n  <div class=\"item\">\n    <select>\n      <option>Choose type register</option>\n      <option>Publisher</option>\n      <option>Administrator</option>\n    </select>\n  </div>\n  <div class=\"item\">\n    <button class=\"green radius full\">Create a new user</button>\n  </div>\n</div></textarea>\n    <p>If you put label on the items, you can have a line view of the component.</p>\n<textarea class=\"bind-code\" mode=\"text/html\">\n<div class=\"list\">\n  <div class=\"item\">\n    <label class=\"text-orange\">Username</label>\n    <input type=\"text\">\n  </div>\n  <div class=\"item\">\n    <label class=\"text-orange\">Password</label>\n    <input type=\"password\">\n  </div>\n  <div class=\"item\">\n    <button class=\"orange-900 radius full\">Login user</button>\n  </div>\n</div></textarea>\n    <p>Use class <code>label-fixed</code> in <code>item</code> of the list for fixed the label.</p>\n<textarea class=\"bind-code\" mode=\"text/html\">\n<div class=\"list\">\n  <div class=\"item label-fixed\">\n    <label>Username</label>\n    <input type=\"text\">\n  </div>\n  <div class=\"item label-fixed\">\n    <label>Password</label>\n    <input type=\"password\">\n  </div>\n  <div class=\"item\">\n    <button class=\"blue radius full\">Login user</button>\n  </div>\n</div></textarea>\n    <p>Input floating is a good option for forms login, just add class <code>label-float</code> in item.</p>\n<textarea class=\"bind-code\" mode=\"text/html\">\n<div class=\"list\">\n  <div class=\"item label-float\">\n    <label>Username</label>\n    <input type=\"text\">\n  </div>\n  <div class=\"item label-float\">\n    <label>Password</label>\n    <input type=\"password\">\n  </div>\n  <div class=\"item\">\n    <button class=\"pink radius full\">Login user</button>\n  </div>\n</div></textarea>\n<p>You can put <code>align-right</code> for align your text in right item.</p>\n<textarea class=\"bind-code\" mode=\"text/html\">\n<div class=\"list\">\n  <div class=\"item label-fixed\">\n    <label>Value</label>\n    <input type=\"number\" class=\"align-right\">\n  </div>\n</div></textarea>\n    <p>\n      You can use <a href=\"#icons\">icons</a> in your input. Simply add a class <code>icon</code> and your <code>ion-*</code>.\n      By default the icon will take the left. However, you can put them on the right by adding the class <code>icon-right</code>.\n    </p>\n<textarea class=\"bind-code\" mode=\"text/html\">\n<div class=\"list\">\n  <div class=\"item icon ion-search\">\n    <input type=\"text\" placeholder=\"Search\">\n  </div>\n  <div class=\"item icon ion-person\">\n    <select>\n      <option value=\"\">Select a user</option>\n    </select>\n  </div>\n  <div class=\"item icon ion-heart text-red\">\n    <input type=\"text\" placeholder=\"Search\">\n  </div>\n  <div class=\"item icon ion-music-note icon-right\">\n    <input type=\"text\" placeholder=\"Search\">\n  </div>\n  <div class=\"item icon ion-person pink text-pink-300\">\n    <input class=\"placeholder-white text-white\" type=\"text\" placeholder=\"Enter your name\">\n  </div>\n</div>\n<p>Radius input</p>\n<div class=\"list no-border\">\n  <div class=\"item radius icon ion-person grey-200\">\n    <input type=\"text\" placeholder=\"Enter your name\">\n  </div>\n</div></textarea>\n    <p>You can be creative and also use the other components such as <a href=\"#cover\">cover</a> and <a href=\"#grid\">grid</a> components.\n      And you can install new fonts using feature <a href=\"#fonts\">fonts</a>.</p>\n<textarea class=\"bind-code\" mode=\"text/html\" replace=\"body,div\" height-preview=\"500px\" header-absolute=\"true\">\n<style>\n  #titleDiscoveryNow {\n    font-family: 'Chewy', cursive;\n    font-size: 45px;\n    line-height: 24px;\n    z-index: 33;\n    position: relative;\n  }\n</style>\n<body class=\"cover vertical-align-center blue-grey-900 align-center blend-soft-light\" style=\"background-image:url('../assets/img/music1.jpg')\">\n  <div class=\"space\"></div>\n  <div class=\"space\"></div>\n  <div class=\"space\"></div>\n  <p class=\"text-white\">WELCOME TO</p>\n  <h1 id=\"titleDiscoveryNow\" class=\"text-blue\">DiscoveryNow</h1>\n  <p class=\"text-grey-300\">Find good music all the day for you</p>\n  <div class=\"space\"></div>\n  <div class=\"space\"></div>\n  <div class=\"row\">\n    <div class=\"col-90 col-center\">\n      <div class=\"list no-border opacity-60\">\n        <div class=\"item icon ion-android-mail border-grey border-bottom\">\n          <input class=\"placeholder-white text-white\" type=\"email\" placeholder=\"Enter your email\">\n        </div>\n        <div class=\"item icon ion-android-lock border-grey border-bottom\">\n          <input class=\"placeholder-white text-white\" type=\"password\" placeholder=\"Enter your password\">\n        </div>\n      </div>\n      <div class=\"space\"></div>\n      <div class=\"space\"></div>\n      <button class=\"border-blue text-blue full\">SIGN IN</button>\n    </div>\n  </div>\n  <div class=\"header bottom gradient\">\n    <button class=\"text-grey\">SIGN UP</button>\n  </div>\n</body></textarea>\n    <p>\n      A switch is an input component that holds a boolean value. Like the checkbox, switches are often used to\n      allow the user to switch a setting on or off. Attributes like value, disabled, and checked can be applied to\n      the toggle to control its behavior.\n    </p>\n<textarea class=\"bind-code\" mode=\"text/html\" multiplatform=\"true\">\n<div class=\"list\">\n  <div class=\"item\">\n    <h2>Show on Home Screen</h2>\n    <div class=\"right\">\n      <input type=\"checkbox\" class=\"switch green\" checked>\n    </div>\n  </div>\n  <div class=\"item grey-200 text-grey text-light\">\n    <p>Show new of the app on your Home Screen.</p>\n  </div>\n  <div class=\"item\">\n    <h2>Auto Backup</h2>\n    <div class=\"right\">\n      <input type=\"checkbox\" class=\"switch blue\">\n    </div>\n  </div>\n  <div class=\"item grey-200 text-grey text-light\">\n    <p>Allow backup of the app in the background when you not used.</p>\n  </div>\n  <div class=\"item\">\n    <h2>Allow Remove App</h2>\n    <div class=\"right\">\n      <input type=\"checkbox\" class=\"switch red\" disabled>\n    </div>\n  </div>\n</div></textarea>\n    <p>A checkbox is an input component that holds a boolean value. Checkboxes are no different than HTML checkbox inputs. However, like other Ionic components, checkboxes are styled differently on each platform.</p>\n<textarea class=\"bind-code\" mode=\"text/html\" multiplatform=\"true\">\n<div class=\"list\">\n  <div class=\"item small-space grey-300 text-grey-700\">\n    <p>\n      Who would like to follow about CSS?\n    </p>\n  </div>\n  <div class=\"item\">\n    <div class=\"left\">\n      <input type=\"checkbox\" class=\"blue\" checked>\n    </div>\n    <h2>Chris Coyier</h2>\n    <p class=\"text-blue\">\n      <i class=\"icon ion-social-twitter\"></i> @chriscoyier\n    </p>\n  </div>\n  <div class=\"item\">\n    <div class=\"left\">\n      <input type=\"checkbox\" class=\"green\">\n    </div>\n    <h2>Chris Heilmann</h2>\n    <p class=\"text-blue\">\n      <i class=\"icon ion-social-twitter\"></i> @codepo8\n    </p>\n  </div>\n  <div class=\"item\">\n    <div class=\"left\">\n      <input type=\"checkbox\" class=\"pink\">\n    </div>\n    <h2>Estelle Weyl</h2>\n    <p class=\"text-blue\">\n      <i class=\"icon ion-social-twitter\"></i> @standardista\n    </p>\n  </div>\n  <div class=\"item\">\n    <div class=\"left\">\n      <input type=\"checkbox\" class=\"black\" checked>\n    </div>\n    <h2>Jake Archibald</h2>\n    <p class=\"text-blue\">\n      <i class=\"icon ion-social-twitter\"></i> @jaffathecake\n    </p>\n  </div>\n  <div class=\"item\">\n    <div class=\"left\">\n      <input type=\"checkbox\" class=\"blue\" checked disabled>\n    </div>\n    <h2>Zeno Rocha</h2>\n    <p class=\"text-blue\">\n      <i class=\"icon ion-social-twitter\"></i> @zenorocha\n    </p>\n  </div>\n</div></textarea>\n    <p>\n      Like the checkbox, a radio is an input component that holds a boolean value.\n      Under the hood, radios are no different than HTML radio inputs. Radios are styled differently on each platform\n    </p>\n<textarea class=\"bind-code\" mode=\"text/html\" multiplatform=\"true\">\n<div class=\"list\">\n  <div class=\"item small-space grey-300 text-grey-700\">\n    <p>\n      Who would you like to send a message to?\n    </p>\n  </div>\n  <div class=\"item\">\n    <p>Chris Coyier</p>\n    <div class=\"right\">\n      <input type=\"radio\" name=\"user\" class=\"teal\">\n    </div>\n  </div>\n  <div class=\"item\">\n    <p>Chris Heilmann</p>\n    <div class=\"right\">\n      <input type=\"radio\" name=\"user\" class=\"teal\" checked>\n    </div>\n  </div>\n  <div class=\"item\">\n    <p>Estelle Weyl</p>\n    <div class=\"right\">\n      <input type=\"radio\" name=\"user\" class=\"teal\">\n    </div>\n  </div>\n  <div class=\"item\">\n    <p>Jake Archibald</p>\n    <div class=\"right\">\n      <input type=\"radio\" name=\"user\" class=\"teal\">\n    </div>\n  </div>\n  <div class=\"item\">\n    <p>Zeno Rocha</p>\n    <div class=\"right\">\n      <input type=\"radio\" name=\"user\" class=\"teal\" disabled>\n    </div>\n  </div>\n</div></textarea>\n    <p>\n      You can use a range input for control that lets users select from a range of values by moving a slider\n      knob along the slider bar or track.\n    </p>\n<textarea class=\"bind-code\" mode=\"text/html\" multiplatform=\"true\">\n<div class=\"list\">\n  <div class=\"item small-space grey-300 text-grey-700\">\n    <p>\n      Control your home by mobile app.\n    </p>\n  </div>\n  <div class=\"item range\">\n    <div class=\"left\">\n      <i class=\"icon ion-ios-lightbulb-outline\"></i>\n    </div>\n    <input type=\"range\" min=\"0\" max=\"100\" value=\"32\">\n    <div class=\"right\">\n      <i class=\"icon ion-ios-lightbulb\"></i>\n    </div>\n  </div>\n  <div class=\"item range\">\n    <div class=\"left\">\n      <i class=\"icon ion-ios-flask-outline\"></i>\n    </div>\n    <input type=\"range\" min=\"0\" max=\"100\" value=\"22\">\n    <div class=\"right\">\n      <i class=\"icon ion-ios-flask\"></i>\n    </div>\n  </div>\n  <div class=\"item range\">\n    <div class=\"left\">\n      <i class=\"icon ion-ios-flame-outline\"></i>\n    </div>\n    <input type=\"range\" min=\"0\" max=\"100\" value=\"43\">\n    <div class=\"right\">\n      <i class=\"icon ion-ios-flame\"></i>\n    </div>\n  </div>\n  <div class=\"item range\">\n    <div class=\"left\">\n      <i class=\"icon ion-ios-mic-outline\"></i>\n    </div>\n    <input type=\"range\" min=\"0\" max=\"100\" value=\"89\">\n    <div class=\"right\">\n      <i class=\"icon ion-ios-mic\"></i>\n    </div>\n  </div>\n</div></textarea>\n\n    <!-- DONE -->\n    <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n    <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n    <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n    <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "input/script.js",
    "content": "(function bindInputEvent(){\n  setTimeout(function(){\n    var inputs = document.getElementsByTagName('input');\n    for(i in inputs){\n      var parent = inputs[i].parentNode;\n      if(parent && (parent.className.indexOf('left') >=0 || parent.className.indexOf('right') >=0) && parent.parentNode.className.indexOf('item') >= 0){\n        parent = parent.parentNode;\n      }\n      if(parent && parent.className.indexOf('item') >=0 && parent.className.indexOf('bind-input-event-click') < 0 ){\n        parent.className += ' bind-input-event-click';\n        parent.addEventListener('click', function(){\n          if(this.getElementsByTagName('input').length) {\n            this.getElementsByTagName('input')[0].focus();\n            if(this.getElementsByTagName('input')[0].type === 'radio' && !this.getElementsByTagName('input')[0].disabled) {\n              this.getElementsByTagName('input')[0].checked=true;\n            }\n          }\n        }, false);\n      }\n    }\n    var labelsFloat = document.getElementsByClassName('label-float');\n    for(i in labelsFloat) {\n      if(labelsFloat[i].className && labelsFloat[i].className.indexOf('bind-input-event-focus') < 0 && labelsFloat[i].querySelectorAll('input,textarea').length) {\n        labelsFloat[i].className += ' bind-input-event-focus';\n        labelsFloat[i].querySelectorAll('input,textarea')[0].addEventListener('focus', function(){\n          if(this.parentNode.getElementsByTagName('label').length && this.parentNode.getElementsByTagName('label')[0].className.indexOf('focus') < 0) {\n            this.parentNode.getElementsByTagName('label')[0].className += ' focus'\n          }\n        }, false);\n        labelsFloat[i].querySelectorAll('input,textarea')[0].addEventListener('blur', function(){\n          if(this.parentNode.getElementsByTagName('label').length && this.parentNode.getElementsByTagName('label')[0].className && !this.value.length) {\n            this.parentNode.getElementsByTagName('label')[0].className = this.parentNode.getElementsByTagName('label')[0].className.replace('focus','');\n          }\n        }, false);\n        if(labelsFloat[i].querySelectorAll('input,textarea')[0].value && labelsFloat[i].querySelectorAll('input,textarea')[0].value.length) {\n          labelsFloat[i].querySelectorAll('input,textarea')[0].parentNode.getElementsByTagName('label')[0].className += ' focus'\n        }\n      }\n    }\n\n    bindInputEvent();\n  },500);\n})();\n"
  },
  {
    "path": "input/style.css",
    "content": "input, textarea, select {\n  border: none;\n  background: none;\n  font-size: 14px;\n  width: 100%;\n  -webkit-flex: 1;\n  -ms-flex: 1;\n  flex: 1;\n}\ninput[disabled], textarea[disabled], select[disabled] {\n  opacity: 0.8;\n}\nlabel {\n  font-size: 14px;\n}\n/*Define a fixed label beside the input element.*/\n.label-fixed,\n.item.label-fixed {\n  display: -moz-flex !important;\n  display: -ms-flexbox !important;\n  display: flex !important;\n  width: 100%;\n}\n.label-fixed label {\n  -webkit-flex: 0 0 100px;\n  -ms-flex: 0 0 100px;\n  flex: 0 0 100px;\n  width: 100px;\n  min-width: 100px;\n  max-width: 200px;\n}\n/*Define a floating label above the input element.*/\n.label-float {\n\n}\n.label-float label {\n  margin-bottom: 0;\n  -webkit-transform: translate3d(0, 27px, 0);\n  transform: translate3d(0, 27px, 0);\n  -webkit-transform-origin: left top;\n  transform-origin: left top;\n  transition: -webkit-transform 150ms ease-in-out;\n  transition: transform 150ms ease-in-out;\n  transition: transform 150ms ease-in-out, -webkit-transform 150ms ease-in-out;\n  align-self: stretch;\n  -webkit-flex: initial;\n  -ms-flex: initial;\n  flex: initial;\n  display: block;\n}\n.label-float label.focus {\n  -webkit-transform: translate3d(0, 0, 0) scale(0.8);\n  transform: translate3d(0, 0, 0) scale(0.8);\n}\n.item.icon {\n  display: flex;\n}\n.item.icon.radius {\n  border-radius: 6px;\n}\n.item.icon:not([class*=\"text-\"]) {\n  color: #9f9f9f;\n}\n.item input::-webkit-input-placeholder {\n  color: rgba(0, 0, 0, 0.6);\n}\n/*Defines a light color for the placeholder.*/\n.item input.placeholder-white::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.6);\n}\n.item.icon:before {\n  position: absolute;\n}\n/*Align an icon from a field to the right.*/\n.item.icon.icon-right:before {\n  right: 20px;\n}\n.item.icon input, .item.icon select {\n  padding-left: 30px;\n}\n.item.icon.icon-right input, .item.icon.icon-right select {\n  padding-left: 0;\n  padding-right: 30px;\n}\ninput[type=\"checkbox\"] {\n  width: 17px;\n  height: 17px;\n  z-index: 1;\n  border: 0;\n  vertical-align: top;\n  outline: none;\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n  border-radius: 2px;\n}\n.platform-ios input[type=\"checkbox\"]{\n  height: 23px;\n  width: 23px;\n  border-radius: 50%;\n}\ninput[type=\"checkbox\"]:not(:checked) {\n  background-color: #fff !important;\n  box-shadow: inset 0 0 0 2px rgba(0,0,0,0.5);\n}\n.platform-ios input[type=\"checkbox\"]:not(:checked){\n  box-shadow: inset 0 0 0 1px rgba(0,0,0,0.4);\n}\ninput[type=\"checkbox\"]:disabled {\n  opacity: 0.4;\n}\ninput[type=\"checkbox\"]::before {\n  content: '';\n  position: absolute;\n  margin-top: 1px;\n  margin-left: 5px;\n  width: 5px;\n  height: 10px;\n  border-width: 2px;\n  border-top-width: 0;\n  border-left-width: 0;\n  border-style: solid;\n  border-color: #fff;\n  -webkit-transform: rotate(45deg);\n  transform: rotate(45deg);\n}\n.platform-ios input[type=\"checkbox\"]::before {\n  margin-top: 5px;\n  margin-left: 9px;\n  width: 4px;\n  height: 9px;\n  border-width: 1px;\n  border-top-width: 0;\n  border-left-width: 0;\n}\ninput[type=\"checkbox\"].switch {\n  width: 36px;\n  height: 14px;\n  box-shadow: inset 0 0 0 30px rgba(255,255,255,0.4);\n  border-radius: 28px;\n  -webkit-transition-property: all;\n  transition-property: all;\n  -webkit-transition-duration: 0.35s;\n  transition-duration: 0.35s;\n  -webkit-transition-timing-function: ease-out;\n  transition-timing-function: ease-out;\n}\n.platform-ios input[type=\"checkbox\"].switch {\n  height: 32px;\n  width: 51px;\n  box-shadow: inset 0 0 0 2px rgba(0,0,0,0.05);\n}\ninput[type=\"checkbox\"].switch:not(:checked) {\n  background-color: #fff !important;\n  box-shadow: inset 0 0 0 30px rgba(0,0,0,0.35);\n}\n.platform-ios input[type=\"checkbox\"].switch:not(:checked) {\n  box-shadow: inset 0 0 0 2px rgba(0,0,0,0.1);\n}\ninput[type=\"checkbox\"].switch::before {\n  content: '';\n  border-radius: 28px;\n  height: 20px;\n  width: 20px;\n  margin-left: -1px;\n  margin-top: -3px;\n  -webkit-transition-duration: .35s;\n  transition-duration: .35s;\n  box-shadow: 0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12),0 2px 4px -1px rgba(0,0,0,.4);\n  border: 0;\n}\n.platform-ios input[type=\"checkbox\"].switch::before {\n  height: 28px;\n  width: 28px;\n  box-shadow: 0 0 0 1px #e4e4e4, 0 3px 2px rgba(0, 0, 0, .25);\n  margin-top: 2px;\n  margin-left: 2px;\n  background-color: #fff !important;\n}\ninput[type=\"checkbox\"].switch:checked::before {\n    margin-left: 16px;\n}\ninput[type=\"checkbox\"].switch:not(:checked)::before {\n  background-color: #fff !important;\n}\n.platform-ios input[type=\"checkbox\"].switch:checked::before {\n  margin-left: 21px;\n  box-shadow: 0 3px 2px rgba(0, 0, 0, .25);\n  background-color: #fff;\n}\ninput[type=\"radio\"] {\n  width: 20px;\n  height: 20px;\n  border-radius: 50%;\n  position: relative;\n  overflow: hidden;\n  z-index: 1;\n  vertical-align: top;\n  outline: none;\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n  background: none;\n}\n.platform-ios input[type=\"radio\"] {\n  background: none !important;\n}\ninput[type=\"radio\"]::after {\n  content: '';\n  width: 100%;\n  height: 100%;\n  position: absolute;\n  border-radius: 50%;\n}\n.platform-ios input[type=\"radio\"]:not(:checked)::after {\n  box-shadow:none;\n}\ninput[type=\"radio\"]:not(:checked)::after {\n  box-shadow: inset 0 0 0 2px rgba(0,0,0,0.4);\n  background-color: #fff !important;\n}\ninput[type=\"radio\"]:checked::before {\n  content: '';\n  width: 10px;\n  height: 10px;\n  position: absolute;\n  border: 3px solid #fff;\n  z-index: 1;\n  border-radius: 50%;\n  margin-top: 2px;\n  margin-left: 2px;\n}\ninput[type=\"radio\"]:disabled {\n  opacity: 0.4;\n}\n.platform-ios input[type=\"radio\"]::after {\n  background: none !important;\n}\n.platform-ios input[type=\"radio\"]:checked::before {\n  position: absolute;\n  margin-top: 4px;\n  margin-left: 7px;\n  width: 5px;\n  height: 12px;\n  border-width: 2px;\n  border-top-width: 0;\n  border-left-width: 0;\n  border-style: solid;\n  -webkit-transform: rotate(45deg);\n  transform: rotate(45deg);\n  border-radius: 0;\n}\n/*Defines a item of list is range input.*/\n.item.range {\n  position: relative;\n  -ms-flex-item-align: center;\n  -webkit-align-self: center;\n  align-self: center;\n}\n.item.range input{\n  position: absolute;;\n   height: 28px;\n   width: calc(100% - 110px);\n   margin: 4px 0 5px 0;\n   -webkit-appearance: none;\n   -moz-appearance: none;\n   -ms-appearance: none;\n   appearance: none;\n   background: -webkit-gradient(linear,50% 0,50% 100%,color-stop(0,#ccc),color-stop(100%,#ccc));\n   background: linear-gradient(to right,#ccc 0,#ccc 100%);\n   background-position: center;\n   background-size: 100% 2px;\n   background-repeat: no-repeat;\n   outline: 0;\n   border: none;\n   box-sizing: content-box;\n   -ms-background-position-y: 500px;\n}\ninput[type=\"range\"]::-webkit-slider-thumb {\n     -webkit-appearance: none;\n    background-color: #666;\n    width: 13px;\n    height: 13px;\n    border-radius: 50%;\n}\ninput[type=\"range\"]:active::-webkit-slider-thumb {\n  width: 20px;\n  height: 20px;\n}\n.platform-ios input[type=\"range\"]::-webkit-slider-thumb {\n  background-color: #fff;\n  box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.3);\n  width: 25px;\n  height: 25px;\n  border: 1px solid rgba(0, 0, 0, 0.05);\n  border-radius: 50%;\n}\ninput[type=\"radio\"].red-50::after, input[type=\"checkbox\"].red-50.switch::before { background-color: #ffebee; }\ninput[type=\"radio\"].red-100::after, input[type=\"checkbox\"].red-100.switch::before { background-color: #ffcdd2; }\ninput[type=\"radio\"].red-200::after, input[type=\"checkbox\"].red-200.switch::before { background-color: #ef9a9a; }\ninput[type=\"radio\"].red-300::after, input[type=\"checkbox\"].red-300.switch::before { background-color: #e57373; }\ninput[type=\"radio\"].red-400::after, input[type=\"checkbox\"].red-400.switch::before { background-color: #ef5350; }\ninput[type=\"radio\"].red-500::after, input[type=\"checkbox\"].red-500.switch::before { background-color: #f44336; }\ninput[type=\"radio\"].red-600::after, input[type=\"checkbox\"].red-600.switch::before { background-color: #e53935; }\ninput[type=\"radio\"].red-700::after, input[type=\"checkbox\"].red-700.switch::before { background-color: #d32f2f; }\ninput[type=\"radio\"].red-800::after, input[type=\"checkbox\"].red-800.switch::before { background-color: #c62828; }\ninput[type=\"radio\"].red-900::after, input[type=\"checkbox\"].red-900.switch::before { background-color: #b71c1c; }\ninput[type=\"radio\"].pink::after, input[type=\"checkbox\"].pink.switch::before { background-color: #E91E63; }\ninput[type=\"radio\"].pink-50::after, input[type=\"checkbox\"].pink-50.switch::before { background-color: #fce4ec; }\ninput[type=\"radio\"].pink-100::after, input[type=\"checkbox\"].pink-100.switch::before { background-color: #f8bbd0; }\ninput[type=\"radio\"].pink-200::after, input[type=\"checkbox\"].pink-200.switch::before { background-color: #f48fb1; }\ninput[type=\"radio\"].Pink-300::after, input[type=\"checkbox\"].Pink-300.switch::before { background-color: #f06292; }\ninput[type=\"radio\"].pink-400::after, input[type=\"checkbox\"].pink-400.switch::before { background-color: #ec407a; }\ninput[type=\"radio\"].pink-500::after, input[type=\"checkbox\"].pink-500.switch::before { background-color: #e91e63; }\ninput[type=\"radio\"].pink-600::after, input[type=\"checkbox\"].pink-600.switch::before { background-color: #d81b60; }\ninput[type=\"radio\"].pink-700::after, input[type=\"checkbox\"].pink-700.switch::before { background-color: #c2185b; }\ninput[type=\"radio\"].pink-800::after, input[type=\"checkbox\"].pink-800.switch::before { background-color: #ad1457; }\ninput[type=\"radio\"].pink-900::after, input[type=\"checkbox\"].pink-900.switch::before { background-color: #880e4f; }\ninput[type=\"radio\"].purple::after, input[type=\"checkbox\"].purple.switch::before { background-color: #9c27b0; }\ninput[type=\"radio\"].purple-50::after, input[type=\"checkbox\"].purple-50.switch::before { background-color: #f3e5f5; }\ninput[type=\"radio\"].purple-100::after, input[type=\"checkbox\"].purple-100.switch::before { background-color: #e1bee7; }\ninput[type=\"radio\"].purple-200::after, input[type=\"checkbox\"].purple-200.switch::before { background-color: #ce93d8; }\ninput[type=\"radio\"].Purple-300::after, input[type=\"checkbox\"].Purple-300.switch::before { background-color: #ba68c8; }\ninput[type=\"radio\"].Purple-400::after, input[type=\"checkbox\"].Purple-400.switch::before { background-color: #ab47bc; }\ninput[type=\"radio\"].purple-500::after, input[type=\"checkbox\"].purple-500.switch::before { background-color: #9c27b0; }\ninput[type=\"radio\"].purple-600::after, input[type=\"checkbox\"].purple-600.switch::before { background-color: #8e24aa; }\ninput[type=\"radio\"].purple-700::after, input[type=\"checkbox\"].purple-700.switch::before { background-color: #7b1fa2; }\ninput[type=\"radio\"].purple-800::after, input[type=\"checkbox\"].purple-800.switch::before { background-color: #6a1b9a; }\ninput[type=\"radio\"].purple-900::after, input[type=\"checkbox\"].purple-900.switch::before { background-color: #4a148c; }\ninput[type=\"radio\"].deep-purple::after, input[type=\"checkbox\"].deep-purple.switch::before { background-color: #673ab7; }\ninput[type=\"radio\"].deep-purple-300::after, input[type=\"checkbox\"].deep-purple-300.switch::before { background-color: #9575cd; }\ninput[type=\"radio\"].deep-purple-400::after, input[type=\"checkbox\"].deep-purple-400.switch::before { background-color: #7e57c2; }\ninput[type=\"radio\"].deep-purple-500::after, input[type=\"checkbox\"].deep-purple-500.switch::before { background-color: #673ab7; }\ninput[type=\"radio\"].deep-purple-600::after, input[type=\"checkbox\"].deep-purple-600.switch::before { background-color: #5e35b1; }\ninput[type=\"radio\"].deep-purple-700::after, input[type=\"checkbox\"].deep-purple-700.switch::before { background-color: #512da8; }\ninput[type=\"radio\"].deep-purple-800::after, input[type=\"checkbox\"].deep-purple-800.switch::before { background-color: #4527a0; }\ninput[type=\"radio\"].deep-purple-900::after, input[type=\"checkbox\"].deep-purple-900.switch::before { background-color: #311b92; }\ninput[type=\"radio\"].indigo::after, input[type=\"checkbox\"].indigo.switch::before { background-color: #3f51b5; }\ninput[type=\"radio\"].indigo-50::after, input[type=\"checkbox\"].indigo-50.switch::before { background-color: #e8eaf6; }\ninput[type=\"radio\"].indigo-100::after, input[type=\"checkbox\"].indigo-100.switch::before { background-color: #c5cae9; }\ninput[type=\"radio\"].indigo-200::after, input[type=\"checkbox\"].indigo-200.switch::before { background-color: #9fa8da; }\ninput[type=\"radio\"].indigo-300::after, input[type=\"checkbox\"].indigo-300.switch::before { background-color: #7986cb; }\ninput[type=\"radio\"].indigo-400::after, input[type=\"checkbox\"].indigo-400.switch::before { background-color: #5c6bc0; }\ninput[type=\"radio\"].indigo-500::after, input[type=\"checkbox\"].indigo-500.switch::before { background-color: #3f51b5; }\ninput[type=\"radio\"].indigo-600::after, input[type=\"checkbox\"].indigo-600.switch::before { background-color: #3949ab; }\ninput[type=\"radio\"].indigo-700::after, input[type=\"checkbox\"].indigo-700.switch::before { background-color: #303f9f; }\ninput[type=\"radio\"].indigo-800::after, input[type=\"checkbox\"].indigo-800.switch::before { background-color: #283593; }\ninput[type=\"radio\"].indigo-900::after, input[type=\"checkbox\"].indigo-900.switch::before { background-color: #1a237e; }\ninput[type=\"radio\"].blue::after, input[type=\"checkbox\"].blue.switch::before { background-color: #2196F3; }\ninput[type=\"radio\"].blue-50::after, input[type=\"checkbox\"].blue-50.switch::before { background-color: #e3f2fd; }\ninput[type=\"radio\"].blue-100::after, input[type=\"checkbox\"].blue-100.switch::before { background-color: #bbdefb; }\ninput[type=\"radio\"].blue-200::after, input[type=\"checkbox\"].blue-200.switch::before { background-color: #90caf9; }\ninput[type=\"radio\"].blue-300::after, input[type=\"checkbox\"].blue-300.switch::before { background-color: #64b5f6; }\ninput[type=\"radio\"].blue-400::after, input[type=\"checkbox\"].blue-400.switch::before { background-color: #42a5f5; }\ninput[type=\"radio\"].blue-500::after, input[type=\"checkbox\"].blue-500.switch::before { background-color: #2196f3; }\ninput[type=\"radio\"].blue-600::after, input[type=\"checkbox\"].blue-600.switch::before { background-color: #1e88e5; }\ninput[type=\"radio\"].blue-700::after, input[type=\"checkbox\"].blue-700.switch::before { background-color: #1976d2; }\ninput[type=\"radio\"].blue-800::after, input[type=\"checkbox\"].blue-800.switch::before { background-color: #1565c0; }\ninput[type=\"radio\"].blue-900::after, input[type=\"checkbox\"].blue-900.switch::before { background-color: #0d47a1; }\ninput[type=\"radio\"].light-blue::after, input[type=\"checkbox\"].light-blue.switch::before { background-color: #03a9f4; }\ninput[type=\"radio\"].light-blue-50::after, input[type=\"checkbox\"].light-blue-50.switch::before { background-color: #e1f5fe; }\ninput[type=\"radio\"].light-blue-100::after, input[type=\"checkbox\"].light-blue-100.switch::before { background-color: #b3e5fc; }\ninput[type=\"radio\"].light-blue-200::after, input[type=\"checkbox\"].light-blue-200.switch::before { background-color: #81d4fa; }\ninput[type=\"radio\"].light-blue-300::after, input[type=\"checkbox\"].light-blue-300.switch::before { background-color: #4fc3f7; }\ninput[type=\"radio\"].light-blue-400::after, input[type=\"checkbox\"].light-blue-400.switch::before { background-color: #29b6f6; }\ninput[type=\"radio\"].light-blue-500::after, input[type=\"checkbox\"].light-blue-500.switch::before { background-color: #03a9f4; }\ninput[type=\"radio\"].light-blue-600::after, input[type=\"checkbox\"].light-blue-600.switch::before { background-color: #039be5; }\ninput[type=\"radio\"].light-blue-700::after, input[type=\"checkbox\"].light-blue-700.switch::before { background-color: #0288d1; }\ninput[type=\"radio\"].light-blue-800::after, input[type=\"checkbox\"].light-blue-800.switch::before { background-color: #0277bd; }\ninput[type=\"radio\"].light-blue-900::after, input[type=\"checkbox\"].light-blue-900.switch::before { background-color: #01579b; }\ninput[type=\"radio\"].cyan::after, input[type=\"checkbox\"].cyan.switch::before { background-color: #00bcd4; }\ninput[type=\"radio\"].cyan-50::after, input[type=\"checkbox\"].cyan-50.switch::before { background-color: #e0f7fa; }\ninput[type=\"radio\"].cyan-100::after, input[type=\"checkbox\"].cyan-100.switch::before { background-color: #b2ebf2; }\ninput[type=\"radio\"].cyan-200::after, input[type=\"checkbox\"].cyan-200.switch::before { background-color: #80deea; }\ninput[type=\"radio\"].cyan-300::after, input[type=\"checkbox\"].cyan-300.switch::before { background-color: #4dd0e1; }\ninput[type=\"radio\"].cyan-400::after, input[type=\"checkbox\"].cyan-400.switch::before { background-color: #26c6da; }\ninput[type=\"radio\"].cyan-500::after, input[type=\"checkbox\"].cyan-500.switch::before { background-color: #00bcd4; }\ninput[type=\"radio\"].cyan-600::after, input[type=\"checkbox\"].cyan-600.switch::before { background-color: #00acc1; }\ninput[type=\"radio\"].cyan-700::after, input[type=\"checkbox\"].cyan-700.switch::before { background-color: #0097a7; }\ninput[type=\"radio\"].cyan-800::after, input[type=\"checkbox\"].cyan-800.switch::before { background-color: #00838f; }\ninput[type=\"radio\"].cyan-900::after, input[type=\"checkbox\"].cyan-900.switch::before { background-color: #006064; }\ninput[type=\"radio\"].teal::after, input[type=\"checkbox\"].teal.switch::before { background-color: #009688; }\ninput[type=\"radio\"].teal-50::after, input[type=\"checkbox\"].teal-50.switch::before { background-color: #e0f2f1; }\ninput[type=\"radio\"].teal-100::after, input[type=\"checkbox\"].teal-100.switch::before { background-color: #b2dfdb; }\ninput[type=\"radio\"].teal-200::after, input[type=\"checkbox\"].teal-200.switch::before { background-color: #80cbc4; }\ninput[type=\"radio\"].teal-300::after, input[type=\"checkbox\"].teal-300.switch::before { background-color: #4db6ac; }\ninput[type=\"radio\"].teal-400::after, input[type=\"checkbox\"].teal-400.switch::before { background-color: #26a69a; }\ninput[type=\"radio\"].teal-500::after, input[type=\"checkbox\"].teal-500.switch::before { background-color: #009688; }\ninput[type=\"radio\"].teal-600::after, input[type=\"checkbox\"].teal-600.switch::before { background-color: #00897b; }\ninput[type=\"radio\"].teal-700::after, input[type=\"checkbox\"].teal-700.switch::before { background-color: #00796b; }\ninput[type=\"radio\"].teal-800::after, input[type=\"checkbox\"].teal-800.switch::before { background-color: #00695c; }\ninput[type=\"radio\"].teal-900::after, input[type=\"checkbox\"].teal-900.switch::before { background-color: #004d40; }\ninput[type=\"radio\"].green::after, input[type=\"checkbox\"].green.switch::before { background-color: #4caf50; }\ninput[type=\"radio\"].green-50::after, input[type=\"checkbox\"].green-50.switch::before { background-color: #e8f5e9; }\ninput[type=\"radio\"].green-100::after, input[type=\"checkbox\"].green-100.switch::before { background-color: #c8e6c9; }\ninput[type=\"radio\"].green-200::after, input[type=\"checkbox\"].green-200.switch::before { background-color: #a5d6a7; }\ninput[type=\"radio\"].green-300::after, input[type=\"checkbox\"].green-300.switch::before { background-color: #81c784; }\ninput[type=\"radio\"].green-400::after, input[type=\"checkbox\"].green-400.switch::before { background-color: #66bb6a; }\ninput[type=\"radio\"].green-500::after, input[type=\"checkbox\"].green-500.switch::before { background-color: #4caf50; }\ninput[type=\"radio\"].green-600::after, input[type=\"checkbox\"].green-600.switch::before { background-color: #43a047; }\ninput[type=\"radio\"].green-700::after, input[type=\"checkbox\"].green-700.switch::before { background-color: #388e3c; }\ninput[type=\"radio\"].green-800::after, input[type=\"checkbox\"].green-800.switch::before { background-color: #2e7d32; }\ninput[type=\"radio\"].green-900::after, input[type=\"checkbox\"].green-900.switch::before { background-color: #1b5e20; }\ninput[type=\"radio\"].light-green::after, input[type=\"checkbox\"].light-green.switch::before { background-color: #8bc34a; }\ninput[type=\"radio\"].light-green-50::after, input[type=\"checkbox\"].light-green-50.switch::before { background-color: #f1f8e9; }\ninput[type=\"radio\"].light-green-100::after, input[type=\"checkbox\"].light-green-100.switch::before { background-color: #dcedc8; }\ninput[type=\"radio\"].light-green-200::after, input[type=\"checkbox\"].light-green-200.switch::before { background-color: #c5e1a5; }\ninput[type=\"radio\"].light-green-300::after, input[type=\"checkbox\"].light-green-300.switch::before { background-color: #aed581; }\ninput[type=\"radio\"].light-green-400::after, input[type=\"checkbox\"].light-green-400.switch::before { background-color: #9ccc65; }\ninput[type=\"radio\"].light-green-500::after, input[type=\"checkbox\"].light-green-500.switch::before { background-color: #8bc34a; }\ninput[type=\"radio\"].light-green-600::after, input[type=\"checkbox\"].light-green-600.switch::before { background-color: #7cb342; }\ninput[type=\"radio\"].light-green-700::after, input[type=\"checkbox\"].light-green-700.switch::before { background-color: #689f38; }\ninput[type=\"radio\"].light-green-800::after, input[type=\"checkbox\"].light-green-800.switch::before { background-color: #558b2f; }\ninput[type=\"radio\"].light-green-900::after, input[type=\"checkbox\"].light-green-900.switch::before { background-color: #33691e; }\ninput[type=\"radio\"].lime::after, input[type=\"checkbox\"].lime.switch::before { background-color: #cddc39; }\ninput[type=\"radio\"].lime-50::after, input[type=\"checkbox\"].lime-50.switch::before { background-color: #f9fbe7; }\ninput[type=\"radio\"].lime-100::after, input[type=\"checkbox\"].lime-100.switch::before { background-color: #f0f4c3; }\ninput[type=\"radio\"].lime-200::after, input[type=\"checkbox\"].lime-200.switch::before { background-color: #e6ee9c; }\ninput[type=\"radio\"].lime-300::after, input[type=\"checkbox\"].lime-300.switch::before { background-color: #dce775; }\ninput[type=\"radio\"].lime-400::after, input[type=\"checkbox\"].lime-400.switch::before { background-color: #d4e157; }\ninput[type=\"radio\"].lime-500::after, input[type=\"checkbox\"].lime-500.switch::before { background-color: #cddc39; }\ninput[type=\"radio\"].lime-600::after, input[type=\"checkbox\"].lime-600.switch::before { background-color: #c0ca33; }\ninput[type=\"radio\"].lime-700::after, input[type=\"checkbox\"].lime-700.switch::before { background-color: #afb42b; }\ninput[type=\"radio\"].lime-800::after, input[type=\"checkbox\"].lime-800.switch::before { background-color: #9e9d24; }\ninput[type=\"radio\"].lime-900::after, input[type=\"checkbox\"].lime-900.switch::before { background-color: #827717; }\ninput[type=\"radio\"].yellow::after, input[type=\"checkbox\"].yellow.switch::before { background-color: #ffeb3b; }\ninput[type=\"radio\"].yellow-50::after, input[type=\"checkbox\"].yellow-50.switch::before { background-color: #fffde7; }\ninput[type=\"radio\"].yellow-100::after, input[type=\"checkbox\"].yellow-100.switch::before { background-color: #fff9c4; }\ninput[type=\"radio\"].yellow-200::after, input[type=\"checkbox\"].yellow-200.switch::before { background-color: #fff59d; }\ninput[type=\"radio\"].yellow-300::after, input[type=\"checkbox\"].yellow-300.switch::before { background-color: #fff176; }\ninput[type=\"radio\"].yellow-500::after, input[type=\"checkbox\"].yellow-500.switch::before { background-color: #ffeb3b; }\ninput[type=\"radio\"].yellow-600::after, input[type=\"checkbox\"].yellow-600.switch::before { background-color: #fdd835; }\ninput[type=\"radio\"].yellow-700::after, input[type=\"checkbox\"].yellow-700.switch::before { background-color: #fbc02d; }\ninput[type=\"radio\"].yellow-800::after, input[type=\"checkbox\"].yellow-800.switch::before { background-color: #f9a825; }\ninput[type=\"radio\"].yellow-900::after, input[type=\"checkbox\"].yellow-900.switch::before { background-color: #f57f17; }\ninput[type=\"radio\"].amber-50::after, input[type=\"checkbox\"].amber-50.switch::before { background-color: #fff8e1; }\ninput[type=\"radio\"].amber-100::after, input[type=\"checkbox\"].amber-100.switch::before { background-color: #ffecb3; }\ninput[type=\"radio\"].amber-200::after, input[type=\"checkbox\"].amber-200.switch::before { background-color: #ffe082; }\ninput[type=\"radio\"].amber-300::after, input[type=\"checkbox\"].amber-300.switch::before { background-color: #ffd54f; }\ninput[type=\"radio\"].amber-500::after, input[type=\"checkbox\"].amber-500.switch::before { background-color: #ffc107; }\ninput[type=\"radio\"].amber-600::after, input[type=\"checkbox\"].amber-600.switch::before { background-color: #ffb300; }\ninput[type=\"radio\"].amber-700::after, input[type=\"checkbox\"].amber-700.switch::before { background-color: #ffa000; }\ninput[type=\"radio\"].amber-800::after, input[type=\"checkbox\"].amber-800.switch::before { background-color: #ff8f00; }\ninput[type=\"radio\"].amber-900::after, input[type=\"checkbox\"].amber-900.switch::before { background-color: #ff6f00; }\ninput[type=\"radio\"].orange-50::after, input[type=\"checkbox\"].orange-50.switch::before { background-color: #fff3e0; }\ninput[type=\"radio\"].orange-100::after, input[type=\"checkbox\"].orange-100.switch::before { background-color: #ffe0b2; }\ninput[type=\"radio\"].orange-200::after, input[type=\"checkbox\"].orange-200.switch::before { background-color: #ffcc80; }\ninput[type=\"radio\"].orange-300::after, input[type=\"checkbox\"].orange-300.switch::before { background-color: #ffb74d; }\ninput[type=\"radio\"].orange-400::after, input[type=\"checkbox\"].orange-400.switch::before { background-color: #ffa726; }\ninput[type=\"radio\"].orange-500::after, input[type=\"checkbox\"].orange-500.switch::before { background-color: #ff9800; }\ninput[type=\"radio\"].orange-600::after, input[type=\"checkbox\"].orange-600.switch::before { background-color: #fb8c00; }\ninput[type=\"radio\"].orange-700::after, input[type=\"checkbox\"].orange-700.switch::before { background-color: #f57c00; }\ninput[type=\"radio\"].orange-800::after, input[type=\"checkbox\"].orange-800.switch::before { background-color: #ef6c00; }\ninput[type=\"radio\"].orange-900::after, input[type=\"checkbox\"].orange-900.switch::before { background-color: #e65100; }\ninput[type=\"radio\"].deep-orange::after, input[type=\"checkbox\"].deep-orange.switch::before { background-color: #ff5722; }\ninput[type=\"radio\"].deep-orange-50::after, input[type=\"checkbox\"].deep-orange-50.switch::before { background-color: #fbe9e7; }\ninput[type=\"radio\"].deep-orange-100::after, input[type=\"checkbox\"].deep-orange-100.switch::before { background-color: #ffccbc; }\ninput[type=\"radio\"].deep-orange-200::after, input[type=\"checkbox\"].deep-orange-200.switch::before { background-color: #ffab91; }\ninput[type=\"radio\"].deep-orange-300::after, input[type=\"checkbox\"].deep-orange-300.switch::before { background-color: #ff8a65; }\ninput[type=\"radio\"].deep-orange-400::after, input[type=\"checkbox\"].deep-orange-400.switch::before { background-color: #ff7043; }\ninput[type=\"radio\"].deep-orange-500::after, input[type=\"checkbox\"].deep-orange-500.switch::before { background-color: #ff5722; }\ninput[type=\"radio\"].deep-orange-600::after, input[type=\"checkbox\"].deep-orange-600.switch::before { background-color: #f4511e; }\ninput[type=\"radio\"].deep-orange-700::after, input[type=\"checkbox\"].deep-orange-700.switch::before { background-color: #e64a19; }\ninput[type=\"radio\"].deep-orange-800::after, input[type=\"checkbox\"].deep-orange-800.switch::before { background-color: #d84315; }\ninput[type=\"radio\"].deep-orange-900::after, input[type=\"checkbox\"].deep-orange-900.switch::before { background-color: #bf360c; }\ninput[type=\"radio\"].brown::after, input[type=\"checkbox\"].brown.switch::before { background-color: #795548; }\ninput[type=\"radio\"].brown-50::after, input[type=\"checkbox\"].brown-50.switch::before { background-color: #efebe9; }\ninput[type=\"radio\"].brown-100::after, input[type=\"checkbox\"].brown-100.switch::before { background-color: #d7ccc8; }\ninput[type=\"radio\"].brown-200::after, input[type=\"checkbox\"].brown-200.switch::before { background-color: #bcaaa4; }\ninput[type=\"radio\"].brown-300::after, input[type=\"checkbox\"].brown-300.switch::before { background-color: #a1887f; }\ninput[type=\"radio\"].brown-400::after, input[type=\"checkbox\"].brown-400.switch::before { background-color: #8d6e63; }\ninput[type=\"radio\"].brown-500::after, input[type=\"checkbox\"].brown-500.switch::before { background-color: #795548; }\ninput[type=\"radio\"].brown-600::after, input[type=\"checkbox\"].brown-600.switch::before { background-color: #6d4c41; }\ninput[type=\"radio\"].brown-700::after, input[type=\"checkbox\"].brown-700.switch::before { background-color: #5d4037; }\ninput[type=\"radio\"].brown-800::after, input[type=\"checkbox\"].brown-800.switch::before { background-color: #4e342e; }\ninput[type=\"radio\"].brown-900::after, input[type=\"checkbox\"].brown-900.switch::before { background-color: #3e2723; }\ninput[type=\"radio\"].grey::after, input[type=\"checkbox\"].grey.switch::before { background-color: #9e9e9e; }\ninput[type=\"radio\"].grey-50::after, input[type=\"checkbox\"].grey-50.switch::before { background-color: #fafafa; }\ninput[type=\"radio\"].grey-100::after, input[type=\"checkbox\"].grey-100.switch::before { background-color: #f5f5f5; }\ninput[type=\"radio\"].grey-200::after, input[type=\"checkbox\"].grey-200.switch::before { background-color: #eee; }\ninput[type=\"radio\"].grey-300::after, input[type=\"checkbox\"].grey-300.switch::before { background-color: #e0e0e0; }\ninput[type=\"radio\"].grey-400::after, input[type=\"checkbox\"].grey-400.switch::before { background-color: #bdbdbd; }\ninput[type=\"radio\"].grey-500::after, input[type=\"checkbox\"].grey-500.switch::before { background-color: #9e9e9e; }\ninput[type=\"radio\"].grey-600::after, input[type=\"checkbox\"].grey-600.switch::before { background-color: #757575; }\ninput[type=\"radio\"].grey-700::after, input[type=\"checkbox\"].grey-700.switch::before { background-color: #616161; }\ninput[type=\"radio\"].grey-800::after, input[type=\"checkbox\"].grey-800.switch::before { background-color: #424242; }\ninput[type=\"radio\"].grey-900::after, input[type=\"checkbox\"].grey-900.switch::before { background-color: #212121; }\ninput[type=\"radio\"].blue-grey::after, input[type=\"checkbox\"].blue-grey.switch::before { background-color: #607d8b; }\ninput[type=\"radio\"].blue-grey-50::after, input[type=\"checkbox\"].blue-grey-50.switch::before { background-color: #eceff1; }\ninput[type=\"radio\"].blue-grey-100::after, input[type=\"checkbox\"].blue-grey-100.switch::before { background-color: #cfd8dc; }\ninput[type=\"radio\"].blue-grey-200::after, input[type=\"checkbox\"].blue-grey-200.switch::before { background-color: #b0bec5; }\ninput[type=\"radio\"].blue-grey-300::after, input[type=\"checkbox\"].blue-grey-300.switch::before { background-color: #90a4ae; }\ninput[type=\"radio\"].blue-grey-400::after, input[type=\"checkbox\"].blue-grey-400.switch::before { background-color: #78909c; }\ninput[type=\"radio\"].blue-grey-500::after, input[type=\"checkbox\"].blue-grey-500.switch::before { background-color: #607d8b; }\ninput[type=\"radio\"].blue-grey-600::after, input[type=\"checkbox\"].blue-grey-600.switch::before { background-color: #546e7a; }\ninput[type=\"radio\"].blue-grey-700::after, input[type=\"checkbox\"].blue-grey-700.switch::before { background-color: #455a64; }\ninput[type=\"radio\"].blue-grey-800::after, input[type=\"checkbox\"].blue-grey-800.switch::before { background-color: #37474f; }\ninput[type=\"radio\"].blue-grey-900::after, input[type=\"checkbox\"].blue-grey-900.switch::before { background-color: #263238; }\ninput[type=\"radio\"].black::after, input[type=\"checkbox\"].black.switch::before { background-color: #000; }\n.platform-ios input[type=\"radio\"].red-50::before { border-color: #ffebee; }\n.platform-ios input[type=\"radio\"].red-100::before { border-color: #ffcdd2; }\n.platform-ios input[type=\"radio\"].red-200::before { border-color: #ef9a9a; }\n.platform-ios input[type=\"radio\"].red-300::before { border-color: #e57373; }\n.platform-ios input[type=\"radio\"].red-400::before { border-color: #ef5350; }\n.platform-ios input[type=\"radio\"].red-500::before { border-color: #f44336; }\n.platform-ios input[type=\"radio\"].red-600::before { border-color: #e53935; }\n.platform-ios input[type=\"radio\"].red-700::before { border-color: #d32f2f; }\n.platform-ios input[type=\"radio\"].red-800::before { border-color: #c62828; }\n.platform-ios input[type=\"radio\"].red-900::before { border-color: #b71c1c; }\n.platform-ios input[type=\"radio\"].pink::before { border-color: #E91E63; }\n.platform-ios input[type=\"radio\"].pink-50::before { border-color: #fce4ec; }\n.platform-ios input[type=\"radio\"].pink-100::before { border-color: #f8bbd0; }\n.platform-ios input[type=\"radio\"].pink-200::before { border-color: #f48fb1; }\n.platform-ios input[type=\"radio\"].Pink-300::before { border-color: #f06292; }\n.platform-ios input[type=\"radio\"].pink-400::before { border-color: #ec407a; }\n.platform-ios input[type=\"radio\"].pink-500::before { border-color: #e91e63; }\n.platform-ios input[type=\"radio\"].pink-600::before { border-color: #d81b60; }\n.platform-ios input[type=\"radio\"].pink-700::before { border-color: #c2185b; }\n.platform-ios input[type=\"radio\"].pink-800::before { border-color: #ad1457; }\n.platform-ios input[type=\"radio\"].pink-900::before { border-color: #880e4f; }\n.platform-ios input[type=\"radio\"].purple::before { border-color: #9c27b0; }\n.platform-ios input[type=\"radio\"].purple-50::before { border-color: #f3e5f5; }\n.platform-ios input[type=\"radio\"].purple-100::before { border-color: #e1bee7; }\n.platform-ios input[type=\"radio\"].purple-200::before { border-color: #ce93d8; }\n.platform-ios input[type=\"radio\"].Purple-300::before { border-color: #ba68c8; }\n.platform-ios input[type=\"radio\"].Purple-400::before { border-color: #ab47bc; }\n.platform-ios input[type=\"radio\"].purple-500::before { border-color: #9c27b0; }\n.platform-ios input[type=\"radio\"].purple-600::before { border-color: #8e24aa; }\n.platform-ios input[type=\"radio\"].purple-700::before { border-color: #7b1fa2; }\n.platform-ios input[type=\"radio\"].purple-800::before { border-color: #6a1b9a; }\n.platform-ios input[type=\"radio\"].purple-900::before { border-color: #4a148c; }\n.platform-ios input[type=\"radio\"].deep-purple::before { border-color: #673ab7; }\n.platform-ios input[type=\"radio\"].deep-purple-300::before { border-color: #9575cd; }\n.platform-ios input[type=\"radio\"].deep-purple-400::before { border-color: #7e57c2; }\n.platform-ios input[type=\"radio\"].deep-purple-500::before { border-color: #673ab7; }\n.platform-ios input[type=\"radio\"].deep-purple-600::before { border-color: #5e35b1; }\n.platform-ios input[type=\"radio\"].deep-purple-700::before { border-color: #512da8; }\n.platform-ios input[type=\"radio\"].deep-purple-800::before { border-color: #4527a0; }\n.platform-ios input[type=\"radio\"].deep-purple-900::before { border-color: #311b92; }\n.platform-ios input[type=\"radio\"].indigo::before { border-color: #3f51b5; }\n.platform-ios input[type=\"radio\"].indigo-50::before { border-color: #e8eaf6; }\n.platform-ios input[type=\"radio\"].indigo-100::before { border-color: #c5cae9; }\n.platform-ios input[type=\"radio\"].indigo-200::before { border-color: #9fa8da; }\n.platform-ios input[type=\"radio\"].indigo-300::before { border-color: #7986cb; }\n.platform-ios input[type=\"radio\"].indigo-400::before { border-color: #5c6bc0; }\n.platform-ios input[type=\"radio\"].indigo-500::before { border-color: #3f51b5; }\n.platform-ios input[type=\"radio\"].indigo-600::before { border-color: #3949ab; }\n.platform-ios input[type=\"radio\"].indigo-700::before { border-color: #303f9f; }\n.platform-ios input[type=\"radio\"].indigo-800::before { border-color: #283593; }\n.platform-ios input[type=\"radio\"].indigo-900::before { border-color: #1a237e; }\n.platform-ios input[type=\"radio\"].blue::before { border-color: #2196F3; }\n.platform-ios input[type=\"radio\"].blue-50::before { border-color: #e3f2fd; }\n.platform-ios input[type=\"radio\"].blue-100::before { border-color: #bbdefb; }\n.platform-ios input[type=\"radio\"].blue-200::before { border-color: #90caf9; }\n.platform-ios input[type=\"radio\"].blue-300::before { border-color: #64b5f6; }\n.platform-ios input[type=\"radio\"].blue-400::before { border-color: #42a5f5; }\n.platform-ios input[type=\"radio\"].blue-500::before { border-color: #2196f3; }\n.platform-ios input[type=\"radio\"].blue-600::before { border-color: #1e88e5; }\n.platform-ios input[type=\"radio\"].blue-700::before { border-color: #1976d2; }\n.platform-ios input[type=\"radio\"].blue-800::before { border-color: #1565c0; }\n.platform-ios input[type=\"radio\"].blue-900::before { border-color: #0d47a1; }\n.platform-ios input[type=\"radio\"].light-blue::before { border-color: #03a9f4; }\n.platform-ios input[type=\"radio\"].light-blue-50::before { border-color: #e1f5fe; }\n.platform-ios input[type=\"radio\"].light-blue-100::before { border-color: #b3e5fc; }\n.platform-ios input[type=\"radio\"].light-blue-200::before { border-color: #81d4fa; }\n.platform-ios input[type=\"radio\"].light-blue-300::before { border-color: #4fc3f7; }\n.platform-ios input[type=\"radio\"].light-blue-400::before { border-color: #29b6f6; }\n.platform-ios input[type=\"radio\"].light-blue-500::before { border-color: #03a9f4; }\n.platform-ios input[type=\"radio\"].light-blue-600::before { border-color: #039be5; }\n.platform-ios input[type=\"radio\"].light-blue-700::before { border-color: #0288d1; }\n.platform-ios input[type=\"radio\"].light-blue-800::before { border-color: #0277bd; }\n.platform-ios input[type=\"radio\"].light-blue-900::before { border-color: #01579b; }\n.platform-ios input[type=\"radio\"].cyan::before { border-color: #00bcd4; }\n.platform-ios input[type=\"radio\"].cyan-50::before { border-color: #e0f7fa; }\n.platform-ios input[type=\"radio\"].cyan-100::before { border-color: #b2ebf2; }\n.platform-ios input[type=\"radio\"].cyan-200::before { border-color: #80deea; }\n.platform-ios input[type=\"radio\"].cyan-300::before { border-color: #4dd0e1; }\n.platform-ios input[type=\"radio\"].cyan-400::before { border-color: #26c6da; }\n.platform-ios input[type=\"radio\"].cyan-500::before { border-color: #00bcd4; }\n.platform-ios input[type=\"radio\"].cyan-600::before { border-color: #00acc1; }\n.platform-ios input[type=\"radio\"].cyan-700::before { border-color: #0097a7; }\n.platform-ios input[type=\"radio\"].cyan-800::before { border-color: #00838f; }\n.platform-ios input[type=\"radio\"].cyan-900::before { border-color: #006064; }\n.platform-ios input[type=\"radio\"].teal::before { border-color: #009688; }\n.platform-ios input[type=\"radio\"].teal-50::before { border-color: #e0f2f1; }\n.platform-ios input[type=\"radio\"].teal-100::before { border-color: #b2dfdb; }\n.platform-ios input[type=\"radio\"].teal-200::before { border-color: #80cbc4; }\n.platform-ios input[type=\"radio\"].teal-300::before { border-color: #4db6ac; }\n.platform-ios input[type=\"radio\"].teal-400::before { border-color: #26a69a; }\n.platform-ios input[type=\"radio\"].teal-500::before { border-color: #009688; }\n.platform-ios input[type=\"radio\"].teal-600::before { border-color: #00897b; }\n.platform-ios input[type=\"radio\"].teal-700::before { border-color: #00796b; }\n.platform-ios input[type=\"radio\"].teal-800::before { border-color: #00695c; }\n.platform-ios input[type=\"radio\"].teal-900::before { border-color: #004d40; }\n.platform-ios input[type=\"radio\"].green::before { border-color: #4caf50; }\n.platform-ios input[type=\"radio\"].green-50::before { border-color: #e8f5e9; }\n.platform-ios input[type=\"radio\"].green-100::before { border-color: #c8e6c9; }\n.platform-ios input[type=\"radio\"].green-200::before { border-color: #a5d6a7; }\n.platform-ios input[type=\"radio\"].green-300::before { border-color: #81c784; }\n.platform-ios input[type=\"radio\"].green-400::before { border-color: #66bb6a; }\n.platform-ios input[type=\"radio\"].green-500::before { border-color: #4caf50; }\n.platform-ios input[type=\"radio\"].green-600::before { border-color: #43a047; }\n.platform-ios input[type=\"radio\"].green-700::before { border-color: #388e3c; }\n.platform-ios input[type=\"radio\"].green-800::before { border-color: #2e7d32; }\n.platform-ios input[type=\"radio\"].green-900::before { border-color: #1b5e20; }\n.platform-ios input[type=\"radio\"].light-green::before { border-color: #8bc34a; }\n.platform-ios input[type=\"radio\"].light-green-50::before { border-color: #f1f8e9; }\n.platform-ios input[type=\"radio\"].light-green-100::before { border-color: #dcedc8; }\n.platform-ios input[type=\"radio\"].light-green-200::before { border-color: #c5e1a5; }\n.platform-ios input[type=\"radio\"].light-green-300::before { border-color: #aed581; }\n.platform-ios input[type=\"radio\"].light-green-400::before { border-color: #9ccc65; }\n.platform-ios input[type=\"radio\"].light-green-500::before { border-color: #8bc34a; }\n.platform-ios input[type=\"radio\"].light-green-600::before { border-color: #7cb342; }\n.platform-ios input[type=\"radio\"].light-green-700::before { border-color: #689f38; }\n.platform-ios input[type=\"radio\"].light-green-800::before { border-color: #558b2f; }\n.platform-ios input[type=\"radio\"].light-green-900::before { border-color: #33691e; }\n.platform-ios input[type=\"radio\"].lime::before { border-color: #cddc39; }\n.platform-ios input[type=\"radio\"].lime-50::before { border-color: #f9fbe7; }\n.platform-ios input[type=\"radio\"].lime-100::before { border-color: #f0f4c3; }\n.platform-ios input[type=\"radio\"].lime-200::before { border-color: #e6ee9c; }\n.platform-ios input[type=\"radio\"].lime-300::before { border-color: #dce775; }\n.platform-ios input[type=\"radio\"].lime-400::before { border-color: #d4e157; }\n.platform-ios input[type=\"radio\"].lime-500::before { border-color: #cddc39; }\n.platform-ios input[type=\"radio\"].lime-600::before { border-color: #c0ca33; }\n.platform-ios input[type=\"radio\"].lime-700::before { border-color: #afb42b; }\n.platform-ios input[type=\"radio\"].lime-800::before { border-color: #9e9d24; }\n.platform-ios input[type=\"radio\"].lime-900::before { border-color: #827717; }\n.platform-ios input[type=\"radio\"].yellow::before { border-color: #ffeb3b; }\n.platform-ios input[type=\"radio\"].yellow-50::before { border-color: #fffde7; }\n.platform-ios input[type=\"radio\"].yellow-100::before { border-color: #fff9c4; }\n.platform-ios input[type=\"radio\"].yellow-200::before { border-color: #fff59d; }\n.platform-ios input[type=\"radio\"].yellow-300::before { border-color: #fff176; }\n.platform-ios input[type=\"radio\"].yellow-500::before { border-color: #ffeb3b; }\n.platform-ios input[type=\"radio\"].yellow-600::before { border-color: #fdd835; }\n.platform-ios input[type=\"radio\"].yellow-700::before { border-color: #fbc02d; }\n.platform-ios input[type=\"radio\"].yellow-800::before { border-color: #f9a825; }\n.platform-ios input[type=\"radio\"].yellow-900::before { border-color: #f57f17; }\n.platform-ios input[type=\"radio\"].amber-50::before { border-color: #fff8e1; }\n.platform-ios input[type=\"radio\"].amber-100::before { border-color: #ffecb3; }\n.platform-ios input[type=\"radio\"].amber-200::before { border-color: #ffe082; }\n.platform-ios input[type=\"radio\"].amber-300::before { border-color: #ffd54f; }\n.platform-ios input[type=\"radio\"].amber-500::before { border-color: #ffc107; }\n.platform-ios input[type=\"radio\"].amber-600::before { border-color: #ffb300; }\n.platform-ios input[type=\"radio\"].amber-700::before { border-color: #ffa000; }\n.platform-ios input[type=\"radio\"].amber-800::before { border-color: #ff8f00; }\n.platform-ios input[type=\"radio\"].amber-900::before { border-color: #ff6f00; }\n.platform-ios input[type=\"radio\"].orange-50::before { border-color: #fff3e0; }\n.platform-ios input[type=\"radio\"].orange-100::before { border-color: #ffe0b2; }\n.platform-ios input[type=\"radio\"].orange-200::before { border-color: #ffcc80; }\n.platform-ios input[type=\"radio\"].orange-300::before { border-color: #ffb74d; }\n.platform-ios input[type=\"radio\"].orange-400::before { border-color: #ffa726; }\n.platform-ios input[type=\"radio\"].orange-500::before { border-color: #ff9800; }\n.platform-ios input[type=\"radio\"].orange-600::before { border-color: #fb8c00; }\n.platform-ios input[type=\"radio\"].orange-700::before { border-color: #f57c00; }\n.platform-ios input[type=\"radio\"].orange-800::before { border-color: #ef6c00; }\n.platform-ios input[type=\"radio\"].orange-900::before { border-color: #e65100; }\n.platform-ios input[type=\"radio\"].deep-orange::before { border-color: #ff5722; }\n.platform-ios input[type=\"radio\"].deep-orange-50::before { border-color: #fbe9e7; }\n.platform-ios input[type=\"radio\"].deep-orange-100::before { border-color: #ffccbc; }\n.platform-ios input[type=\"radio\"].deep-orange-200::before { border-color: #ffab91; }\n.platform-ios input[type=\"radio\"].deep-orange-300::before { border-color: #ff8a65; }\n.platform-ios input[type=\"radio\"].deep-orange-400::before { border-color: #ff7043; }\n.platform-ios input[type=\"radio\"].deep-orange-500::before { border-color: #ff5722; }\n.platform-ios input[type=\"radio\"].deep-orange-600::before { border-color: #f4511e; }\n.platform-ios input[type=\"radio\"].deep-orange-700::before { border-color: #e64a19; }\n.platform-ios input[type=\"radio\"].deep-orange-800::before { border-color: #d84315; }\n.platform-ios input[type=\"radio\"].deep-orange-900::before { border-color: #bf360c; }\n.platform-ios input[type=\"radio\"].brown::before { border-color: #795548; }\n.platform-ios input[type=\"radio\"].brown-50::before { border-color: #efebe9; }\n.platform-ios input[type=\"radio\"].brown-100::before { border-color: #d7ccc8; }\n.platform-ios input[type=\"radio\"].brown-200::before { border-color: #bcaaa4; }\n.platform-ios input[type=\"radio\"].brown-300::before { border-color: #a1887f; }\n.platform-ios input[type=\"radio\"].brown-400::before { border-color: #8d6e63; }\n.platform-ios input[type=\"radio\"].brown-500::before { border-color: #795548; }\n.platform-ios input[type=\"radio\"].brown-600::before { border-color: #6d4c41; }\n.platform-ios input[type=\"radio\"].brown-700::before { border-color: #5d4037; }\n.platform-ios input[type=\"radio\"].brown-800::before { border-color: #4e342e; }\n.platform-ios input[type=\"radio\"].brown-900::before { border-color: #3e2723; }\n.platform-ios input[type=\"radio\"].grey::before { border-color: #9e9e9e; }\n.platform-ios input[type=\"radio\"].grey-50::before { border-color: #fafafa; }\n.platform-ios input[type=\"radio\"].grey-100::before { border-color: #f5f5f5; }\n.platform-ios input[type=\"radio\"].grey-200::before { border-color: #eee; }\n.platform-ios input[type=\"radio\"].grey-300::before { border-color: #e0e0e0; }\n.platform-ios input[type=\"radio\"].grey-400::before { border-color: #bdbdbd; }\n.platform-ios input[type=\"radio\"].grey-500::before { border-color: #9e9e9e; }\n.platform-ios input[type=\"radio\"].grey-600::before { border-color: #757575; }\n.platform-ios input[type=\"radio\"].grey-700::before { border-color: #616161; }\n.platform-ios input[type=\"radio\"].grey-800::before { border-color: #424242; }\n.platform-ios input[type=\"radio\"].grey-900::before { border-color: #212121; }\n.platform-ios input[type=\"radio\"].blue-grey::before { border-color: #607d8b; }\n.platform-ios input[type=\"radio\"].blue-grey-50::before { border-color: #eceff1; }\n.platform-ios input[type=\"radio\"].blue-grey-100::before { border-color: #cfd8dc; }\n.platform-ios input[type=\"radio\"].blue-grey-200::before { border-color: #b0bec5; }\n.platform-ios input[type=\"radio\"].blue-grey-300::before { border-color: #90a4ae; }\n.platform-ios input[type=\"radio\"].blue-grey-400::before { border-color: #78909c; }\n.platform-ios input[type=\"radio\"].blue-grey-500::before { border-color: #607d8b; }\n.platform-ios input[type=\"radio\"].blue-grey-600::before { border-color: #546e7a; }\n.platform-ios input[type=\"radio\"].blue-grey-700::before { border-color: #455a64; }\n.platform-ios input[type=\"radio\"].blue-grey-800::before { border-color: #37474f; }\n.platform-ios input[type=\"radio\"].blue-grey-900::before { border-color: #263238; }\n.platform-ios input[type=\"radio\"].black::before { border-color: #000; }\n"
  },
  {
    "path": "jquery/component.json",
    "content": "{\n  \"name\":\"jquery\",\n  \"author\": \"madrobby\",\n  \"dependencies\": []\n}\n"
  },
  {
    "path": "jquery/index.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title></title>\n    <link href=\"https://fonts.googleapis.com/css?family=Chewy|Dosis|Raleway:400,700|Roboto:300,400,900,\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n    <link rel=\"stylesheet\" href=\"../base/reset.css\">\n    <link rel=\"stylesheet\" href=\"../base/mobileui.css\">\n    <link rel=\"stylesheet\" href=\"../base/colors.css\">\n    <link rel=\"stylesheet\" href=\"../base/icons.css\">\n    <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n    <style>\n      .content { margin-left:50px}\n    </style>\n    <script type=\"text/javascript\" src=\"../base/base.js\"></script>\n    <script type=\"text/javascript\" src=\"script.js\"></script>\n  </head>\n  <body class=\"content\">\n    <!-- BEGIN -->\n    <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">jQuery</h2>\n    <p>\n      jQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML document traversal and manipulation, event handling,\n      animation, and Ajax much simpler with an easy-to-use API that works across a multitude of browsers.\n      With a combination of versatility and extensibility, jQuery has changed the way that millions of people write JavaScript.\n    </p>\n    <p>\n      To work on mobile devices requires a light and fast version of the frameworks for JavaScript, so MobileUI is equipped with Zepto.js.\n    </p>\n    <p>\n      <a href=\"http://zeptojs.com/\" target=\"_blank\">Zepto</a> is a minimalist JavaScript library for modern browsers with a largely jQuery-compatible API.\n      If you use jQuery, you already know how to use Zepto.\n    </p>\n    <p>\n      To use this component you need install with the command:\n    </p>\n    <pre>mobileui install jquery</pre>\n    <p>See the Zepto documentation and its resources at <a href=\"http://zeptojs.com/\" target=\"_blank\">zeptojs.com</a>.</p>\n\n    <!-- DONE -->\n    <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n    <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n    <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n    <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "jquery/script.js",
    "content": "/* Zepto v1.2.0 - zepto event ajax form ie - zeptojs.com/license */\n(function(global, factory) {\n  if (typeof define === 'function' && define.amd)\n    define(function() { return factory(global) })\n  else\n    factory(global)\n}(this, function(window) {\n  var Zepto = (function() {\n  var undefined, key, $, classList, emptyArray = [], concat = emptyArray.concat, filter = emptyArray.filter, slice = emptyArray.slice,\n    document = window.document,\n    elementDisplay = {}, classCache = {},\n    cssNumber = { 'column-count': 1, 'columns': 1, 'font-weight': 1, 'line-height': 1,'opacity': 1, 'z-index': 1, 'zoom': 1 },\n    fragmentRE = /^\\s*<(\\w+|!)[^>]*>/,\n    singleTagRE = /^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/,\n    tagExpanderRE = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/ig,\n    rootNodeRE = /^(?:body|html)$/i,\n    capitalRE = /([A-Z])/g,\n\n    // special attributes that should be get/set via method calls\n    methodAttributes = ['val', 'css', 'html', 'text', 'data', 'width', 'height', 'offset'],\n\n    adjacencyOperators = [ 'after', 'prepend', 'before', 'append' ],\n    table = document.createElement('table'),\n    tableRow = document.createElement('tr'),\n    containers = {\n      'tr': document.createElement('tbody'),\n      'tbody': table, 'thead': table, 'tfoot': table,\n      'td': tableRow, 'th': tableRow,\n      '*': document.createElement('div')\n    },\n    readyRE = /complete|loaded|interactive/,\n    simpleSelectorRE = /^[\\w-]*$/,\n    class2type = {},\n    toString = class2type.toString,\n    zepto = {},\n    camelize, uniq,\n    tempParent = document.createElement('div'),\n    propMap = {\n      'tabindex': 'tabIndex',\n      'readonly': 'readOnly',\n      'for': 'htmlFor',\n      'class': 'className',\n      'maxlength': 'maxLength',\n      'cellspacing': 'cellSpacing',\n      'cellpadding': 'cellPadding',\n      'rowspan': 'rowSpan',\n      'colspan': 'colSpan',\n      'usemap': 'useMap',\n      'frameborder': 'frameBorder',\n      'contenteditable': 'contentEditable'\n    },\n    isArray = Array.isArray ||\n      function(object){ return object instanceof Array }\n\n  zepto.matches = function(element, selector) {\n    if (!selector || !element || element.nodeType !== 1) return false\n    var matchesSelector = element.matches || element.webkitMatchesSelector ||\n                          element.mozMatchesSelector || element.oMatchesSelector ||\n                          element.matchesSelector\n    if (matchesSelector) return matchesSelector.call(element, selector)\n    // fall back to performing a selector:\n    var match, parent = element.parentNode, temp = !parent\n    if (temp) (parent = tempParent).appendChild(element)\n    match = ~zepto.qsa(parent, selector).indexOf(element)\n    temp && tempParent.removeChild(element)\n    return match\n  }\n\n  function type(obj) {\n    return obj == null ? String(obj) :\n      class2type[toString.call(obj)] || \"object\"\n  }\n\n  function isFunction(value) { return type(value) == \"function\" }\n  function isWindow(obj)     { return obj != null && obj == obj.window }\n  function isDocument(obj)   { return obj != null && obj.nodeType == obj.DOCUMENT_NODE }\n  function isObject(obj)     { return type(obj) == \"object\" }\n  function isPlainObject(obj) {\n    return isObject(obj) && !isWindow(obj) && Object.getPrototypeOf(obj) == Object.prototype\n  }\n\n  function likeArray(obj) {\n    var length = !!obj && 'length' in obj && obj.length,\n      type = $.type(obj)\n\n    return 'function' != type && !isWindow(obj) && (\n      'array' == type || length === 0 ||\n        (typeof length == 'number' && length > 0 && (length - 1) in obj)\n    )\n  }\n\n  function compact(array) { return filter.call(array, function(item){ return item != null }) }\n  function flatten(array) { return array.length > 0 ? $.fn.concat.apply([], array) : array }\n  camelize = function(str){ return str.replace(/-+(.)?/g, function(match, chr){ return chr ? chr.toUpperCase() : '' }) }\n  function dasherize(str) {\n    return str.replace(/::/g, '/')\n           .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2')\n           .replace(/([a-z\\d])([A-Z])/g, '$1_$2')\n           .replace(/_/g, '-')\n           .toLowerCase()\n  }\n  uniq = function(array){ return filter.call(array, function(item, idx){ return array.indexOf(item) == idx }) }\n\n  function classRE(name) {\n    return name in classCache ?\n      classCache[name] : (classCache[name] = new RegExp('(^|\\\\s)' + name + '(\\\\s|$)'))\n  }\n\n  function maybeAddPx(name, value) {\n    return (typeof value == \"number\" && !cssNumber[dasherize(name)]) ? value + \"px\" : value\n  }\n\n  function defaultDisplay(nodeName) {\n    var element, display\n    if (!elementDisplay[nodeName]) {\n      element = document.createElement(nodeName)\n      document.body.appendChild(element)\n      display = getComputedStyle(element, '').getPropertyValue(\"display\")\n      element.parentNode.removeChild(element)\n      display == \"none\" && (display = \"block\")\n      elementDisplay[nodeName] = display\n    }\n    return elementDisplay[nodeName]\n  }\n\n  function children(element) {\n    return 'children' in element ?\n      slice.call(element.children) :\n      $.map(element.childNodes, function(node){ if (node.nodeType == 1) return node })\n  }\n\n  function Z(dom, selector) {\n    var i, len = dom ? dom.length : 0\n    for (i = 0; i < len; i++) this[i] = dom[i]\n    this.length = len\n    this.selector = selector || ''\n  }\n\n  // `$.zepto.fragment` takes a html string and an optional tag name\n  // to generate DOM nodes from the given html string.\n  // The generated DOM nodes are returned as an array.\n  // This function can be overridden in plugins for example to make\n  // it compatible with browsers that don't support the DOM fully.\n  zepto.fragment = function(html, name, properties) {\n    var dom, nodes, container\n\n    // A special case optimization for a single tag\n    if (singleTagRE.test(html)) dom = $(document.createElement(RegExp.$1))\n\n    if (!dom) {\n      if (html.replace) html = html.replace(tagExpanderRE, \"<$1></$2>\")\n      if (name === undefined) name = fragmentRE.test(html) && RegExp.$1\n      if (!(name in containers)) name = '*'\n\n      container = containers[name]\n      container.innerHTML = '' + html\n      dom = $.each(slice.call(container.childNodes), function(){\n        container.removeChild(this)\n      })\n    }\n\n    if (isPlainObject(properties)) {\n      nodes = $(dom)\n      $.each(properties, function(key, value) {\n        if (methodAttributes.indexOf(key) > -1) nodes[key](value)\n        else nodes.attr(key, value)\n      })\n    }\n\n    return dom\n  }\n\n  // `$.zepto.Z` swaps out the prototype of the given `dom` array\n  // of nodes with `$.fn` and thus supplying all the Zepto functions\n  // to the array. This method can be overridden in plugins.\n  zepto.Z = function(dom, selector) {\n    return new Z(dom, selector)\n  }\n\n  // `$.zepto.isZ` should return `true` if the given object is a Zepto\n  // collection. This method can be overridden in plugins.\n  zepto.isZ = function(object) {\n    return object instanceof zepto.Z\n  }\n\n  // `$.zepto.init` is Zepto's counterpart to jQuery's `$.fn.init` and\n  // takes a CSS selector and an optional context (and handles various\n  // special cases).\n  // This method can be overridden in plugins.\n  zepto.init = function(selector, context) {\n    var dom\n    // If nothing given, return an empty Zepto collection\n    if (!selector) return zepto.Z()\n    // Optimize for string selectors\n    else if (typeof selector == 'string') {\n      selector = selector.trim()\n      // If it's a html fragment, create nodes from it\n      // Note: In both Chrome 21 and Firefox 15, DOM error 12\n      // is thrown if the fragment doesn't begin with <\n      if (selector[0] == '<' && fragmentRE.test(selector))\n        dom = zepto.fragment(selector, RegExp.$1, context), selector = null\n      // If there's a context, create a collection on that context first, and select\n      // nodes from there\n      else if (context !== undefined) return $(context).find(selector)\n      // If it's a CSS selector, use it to select nodes.\n      else dom = zepto.qsa(document, selector)\n    }\n    // If a function is given, call it when the DOM is ready\n    else if (isFunction(selector)) return $(document).ready(selector)\n    // If a Zepto collection is given, just return it\n    else if (zepto.isZ(selector)) return selector\n    else {\n      // normalize array if an array of nodes is given\n      if (isArray(selector)) dom = compact(selector)\n      // Wrap DOM nodes.\n      else if (isObject(selector))\n        dom = [selector], selector = null\n      // If it's a html fragment, create nodes from it\n      else if (fragmentRE.test(selector))\n        dom = zepto.fragment(selector.trim(), RegExp.$1, context), selector = null\n      // If there's a context, create a collection on that context first, and select\n      // nodes from there\n      else if (context !== undefined) return $(context).find(selector)\n      // And last but no least, if it's a CSS selector, use it to select nodes.\n      else dom = zepto.qsa(document, selector)\n    }\n    // create a new Zepto collection from the nodes found\n    return zepto.Z(dom, selector)\n  }\n\n  // `$` will be the base `Zepto` object. When calling this\n  // function just call `$.zepto.init, which makes the implementation\n  // details of selecting nodes and creating Zepto collections\n  // patchable in plugins.\n  $ = function(selector, context){\n    return zepto.init(selector, context)\n  }\n\n  function extend(target, source, deep) {\n    for (key in source)\n      if (deep && (isPlainObject(source[key]) || isArray(source[key]))) {\n        if (isPlainObject(source[key]) && !isPlainObject(target[key]))\n          target[key] = {}\n        if (isArray(source[key]) && !isArray(target[key]))\n          target[key] = []\n        extend(target[key], source[key], deep)\n      }\n      else if (source[key] !== undefined) target[key] = source[key]\n  }\n\n  // Copy all but undefined properties from one or more\n  // objects to the `target` object.\n  $.extend = function(target){\n    var deep, args = slice.call(arguments, 1)\n    if (typeof target == 'boolean') {\n      deep = target\n      target = args.shift()\n    }\n    args.forEach(function(arg){ extend(target, arg, deep) })\n    return target\n  }\n\n  // `$.zepto.qsa` is Zepto's CSS selector implementation which\n  // uses `document.querySelectorAll` and optimizes for some special cases, like `#id`.\n  // This method can be overridden in plugins.\n  zepto.qsa = function(element, selector){\n    var found,\n        maybeID = selector[0] == '#',\n        maybeClass = !maybeID && selector[0] == '.',\n        nameOnly = maybeID || maybeClass ? selector.slice(1) : selector, // Ensure that a 1 char tag name still gets checked\n        isSimple = simpleSelectorRE.test(nameOnly)\n    return (element.getElementById && isSimple && maybeID) ? // Safari DocumentFragment doesn't have getElementById\n      ( (found = element.getElementById(nameOnly)) ? [found] : [] ) :\n      (element.nodeType !== 1 && element.nodeType !== 9 && element.nodeType !== 11) ? [] :\n      slice.call(\n        isSimple && !maybeID && element.getElementsByClassName ? // DocumentFragment doesn't have getElementsByClassName/TagName\n          maybeClass ? element.getElementsByClassName(nameOnly) : // If it's simple, it could be a class\n          element.getElementsByTagName(selector) : // Or a tag\n          element.querySelectorAll(selector) // Or it's not simple, and we need to query all\n      )\n  }\n\n  function filtered(nodes, selector) {\n    return selector == null ? $(nodes) : $(nodes).filter(selector)\n  }\n\n  $.contains = document.documentElement.contains ?\n    function(parent, node) {\n      return parent !== node && parent.contains(node)\n    } :\n    function(parent, node) {\n      while (node && (node = node.parentNode))\n        if (node === parent) return true\n      return false\n    }\n\n  function funcArg(context, arg, idx, payload) {\n    return isFunction(arg) ? arg.call(context, idx, payload) : arg\n  }\n\n  function setAttribute(node, name, value) {\n    value == null ? node.removeAttribute(name) : node.setAttribute(name, value)\n  }\n\n  // access className property while respecting SVGAnimatedString\n  function className(node, value){\n    var klass = node.className || '',\n        svg   = klass && klass.baseVal !== undefined\n\n    if (value === undefined) return svg ? klass.baseVal : klass\n    svg ? (klass.baseVal = value) : (node.className = value)\n  }\n\n  // \"true\"  => true\n  // \"false\" => false\n  // \"null\"  => null\n  // \"42\"    => 42\n  // \"42.5\"  => 42.5\n  // \"08\"    => \"08\"\n  // JSON    => parse if valid\n  // String  => self\n  function deserializeValue(value) {\n    try {\n      return value ?\n        value == \"true\" ||\n        ( value == \"false\" ? false :\n          value == \"null\" ? null :\n          +value + \"\" == value ? +value :\n          /^[\\[\\{]/.test(value) ? $.parseJSON(value) :\n          value )\n        : value\n    } catch(e) {\n      return value\n    }\n  }\n\n  $.type = type\n  $.isFunction = isFunction\n  $.isWindow = isWindow\n  $.isArray = isArray\n  $.isPlainObject = isPlainObject\n\n  $.isEmptyObject = function(obj) {\n    var name\n    for (name in obj) return false\n    return true\n  }\n\n  $.isNumeric = function(val) {\n    var num = Number(val), type = typeof val\n    return val != null && type != 'boolean' &&\n      (type != 'string' || val.length) &&\n      !isNaN(num) && isFinite(num) || false\n  }\n\n  $.inArray = function(elem, array, i){\n    return emptyArray.indexOf.call(array, elem, i)\n  }\n\n  $.camelCase = camelize\n  $.trim = function(str) {\n    return str == null ? \"\" : String.prototype.trim.call(str)\n  }\n\n  // plugin compatibility\n  $.uuid = 0\n  $.support = { }\n  $.expr = { }\n  $.noop = function() {}\n\n  $.map = function(elements, callback){\n    var value, values = [], i, key\n    if (likeArray(elements))\n      for (i = 0; i < elements.length; i++) {\n        value = callback(elements[i], i)\n        if (value != null) values.push(value)\n      }\n    else\n      for (key in elements) {\n        value = callback(elements[key], key)\n        if (value != null) values.push(value)\n      }\n    return flatten(values)\n  }\n\n  $.each = function(elements, callback){\n    var i, key\n    if (likeArray(elements)) {\n      for (i = 0; i < elements.length; i++)\n        if (callback.call(elements[i], i, elements[i]) === false) return elements\n    } else {\n      for (key in elements)\n        if (callback.call(elements[key], key, elements[key]) === false) return elements\n    }\n\n    return elements\n  }\n\n  $.grep = function(elements, callback){\n    return filter.call(elements, callback)\n  }\n\n  if (window.JSON) $.parseJSON = JSON.parse\n\n  // Populate the class2type map\n  $.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function(i, name) {\n    class2type[ \"[object \" + name + \"]\" ] = name.toLowerCase()\n  })\n\n  // Define methods that will be available on all\n  // Zepto collections\n  $.fn = {\n    constructor: zepto.Z,\n    length: 0,\n\n    // Because a collection acts like an array\n    // copy over these useful array functions.\n    forEach: emptyArray.forEach,\n    reduce: emptyArray.reduce,\n    push: emptyArray.push,\n    sort: emptyArray.sort,\n    splice: emptyArray.splice,\n    indexOf: emptyArray.indexOf,\n    concat: function(){\n      var i, value, args = []\n      for (i = 0; i < arguments.length; i++) {\n        value = arguments[i]\n        args[i] = zepto.isZ(value) ? value.toArray() : value\n      }\n      return concat.apply(zepto.isZ(this) ? this.toArray() : this, args)\n    },\n\n    // `map` and `slice` in the jQuery API work differently\n    // from their array counterparts\n    map: function(fn){\n      return $($.map(this, function(el, i){ return fn.call(el, i, el) }))\n    },\n    slice: function(){\n      return $(slice.apply(this, arguments))\n    },\n\n    ready: function(callback){\n      // need to check if document.body exists for IE as that browser reports\n      // document ready when it hasn't yet created the body element\n      if (readyRE.test(document.readyState) && document.body) callback($)\n      else document.addEventListener('DOMContentLoaded', function(){ callback($) }, false)\n      return this\n    },\n    get: function(idx){\n      return idx === undefined ? slice.call(this) : this[idx >= 0 ? idx : idx + this.length]\n    },\n    toArray: function(){ return this.get() },\n    size: function(){\n      return this.length\n    },\n    remove: function(){\n      return this.each(function(){\n        if (this.parentNode != null)\n          this.parentNode.removeChild(this)\n      })\n    },\n    each: function(callback){\n      emptyArray.every.call(this, function(el, idx){\n        return callback.call(el, idx, el) !== false\n      })\n      return this\n    },\n    filter: function(selector){\n      if (isFunction(selector)) return this.not(this.not(selector))\n      return $(filter.call(this, function(element){\n        return zepto.matches(element, selector)\n      }))\n    },\n    add: function(selector,context){\n      return $(uniq(this.concat($(selector,context))))\n    },\n    is: function(selector){\n      return this.length > 0 && zepto.matches(this[0], selector)\n    },\n    not: function(selector){\n      var nodes=[]\n      if (isFunction(selector) && selector.call !== undefined)\n        this.each(function(idx){\n          if (!selector.call(this,idx)) nodes.push(this)\n        })\n      else {\n        var excludes = typeof selector == 'string' ? this.filter(selector) :\n          (likeArray(selector) && isFunction(selector.item)) ? slice.call(selector) : $(selector)\n        this.forEach(function(el){\n          if (excludes.indexOf(el) < 0) nodes.push(el)\n        })\n      }\n      return $(nodes)\n    },\n    has: function(selector){\n      return this.filter(function(){\n        return isObject(selector) ?\n          $.contains(this, selector) :\n          $(this).find(selector).size()\n      })\n    },\n    eq: function(idx){\n      return idx === -1 ? this.slice(idx) : this.slice(idx, + idx + 1)\n    },\n    first: function(){\n      var el = this[0]\n      return el && !isObject(el) ? el : $(el)\n    },\n    last: function(){\n      var el = this[this.length - 1]\n      return el && !isObject(el) ? el : $(el)\n    },\n    find: function(selector){\n      var result, $this = this\n      if (!selector) result = $()\n      else if (typeof selector == 'object')\n        result = $(selector).filter(function(){\n          var node = this\n          return emptyArray.some.call($this, function(parent){\n            return $.contains(parent, node)\n          })\n        })\n      else if (this.length == 1) result = $(zepto.qsa(this[0], selector))\n      else result = this.map(function(){ return zepto.qsa(this, selector) })\n      return result\n    },\n    closest: function(selector, context){\n      var nodes = [], collection = typeof selector == 'object' && $(selector)\n      this.each(function(_, node){\n        while (node && !(collection ? collection.indexOf(node) >= 0 : zepto.matches(node, selector)))\n          node = node !== context && !isDocument(node) && node.parentNode\n        if (node && nodes.indexOf(node) < 0) nodes.push(node)\n      })\n      return $(nodes)\n    },\n    parents: function(selector){\n      var ancestors = [], nodes = this\n      while (nodes.length > 0)\n        nodes = $.map(nodes, function(node){\n          if ((node = node.parentNode) && !isDocument(node) && ancestors.indexOf(node) < 0) {\n            ancestors.push(node)\n            return node\n          }\n        })\n      return filtered(ancestors, selector)\n    },\n    parent: function(selector){\n      return filtered(uniq(this.pluck('parentNode')), selector)\n    },\n    children: function(selector){\n      return filtered(this.map(function(){ return children(this) }), selector)\n    },\n    contents: function() {\n      return this.map(function() { return this.contentDocument || slice.call(this.childNodes) })\n    },\n    siblings: function(selector){\n      return filtered(this.map(function(i, el){\n        return filter.call(children(el.parentNode), function(child){ return child!==el })\n      }), selector)\n    },\n    empty: function(){\n      return this.each(function(){ this.innerHTML = '' })\n    },\n    // `pluck` is borrowed from Prototype.js\n    pluck: function(property){\n      return $.map(this, function(el){ return el[property] })\n    },\n    show: function(){\n      return this.each(function(){\n        this.style.display == \"none\" && (this.style.display = '')\n        if (getComputedStyle(this, '').getPropertyValue(\"display\") == \"none\")\n          this.style.display = defaultDisplay(this.nodeName)\n      })\n    },\n    replaceWith: function(newContent){\n      return this.before(newContent).remove()\n    },\n    wrap: function(structure){\n      var func = isFunction(structure)\n      if (this[0] && !func)\n        var dom   = $(structure).get(0),\n            clone = dom.parentNode || this.length > 1\n\n      return this.each(function(index){\n        $(this).wrapAll(\n          func ? structure.call(this, index) :\n            clone ? dom.cloneNode(true) : dom\n        )\n      })\n    },\n    wrapAll: function(structure){\n      if (this[0]) {\n        $(this[0]).before(structure = $(structure))\n        var children\n        // drill down to the inmost element\n        while ((children = structure.children()).length) structure = children.first()\n        $(structure).append(this)\n      }\n      return this\n    },\n    wrapInner: function(structure){\n      var func = isFunction(structure)\n      return this.each(function(index){\n        var self = $(this), contents = self.contents(),\n            dom  = func ? structure.call(this, index) : structure\n        contents.length ? contents.wrapAll(dom) : self.append(dom)\n      })\n    },\n    unwrap: function(){\n      this.parent().each(function(){\n        $(this).replaceWith($(this).children())\n      })\n      return this\n    },\n    clone: function(){\n      return this.map(function(){ return this.cloneNode(true) })\n    },\n    hide: function(){\n      return this.css(\"display\", \"none\")\n    },\n    toggle: function(setting){\n      return this.each(function(){\n        var el = $(this)\n        ;(setting === undefined ? el.css(\"display\") == \"none\" : setting) ? el.show() : el.hide()\n      })\n    },\n    prev: function(selector){ return $(this.pluck('previousElementSibling')).filter(selector || '*') },\n    next: function(selector){ return $(this.pluck('nextElementSibling')).filter(selector || '*') },\n    html: function(html){\n      return 0 in arguments ?\n        this.each(function(idx){\n          var originHtml = this.innerHTML\n          $(this).empty().append( funcArg(this, html, idx, originHtml) )\n        }) :\n        (0 in this ? this[0].innerHTML : null)\n    },\n    text: function(text){\n      return 0 in arguments ?\n        this.each(function(idx){\n          var newText = funcArg(this, text, idx, this.textContent)\n          this.textContent = newText == null ? '' : ''+newText\n        }) :\n        (0 in this ? this.pluck('textContent').join(\"\") : null)\n    },\n    attr: function(name, value){\n      var result\n      return (typeof name == 'string' && !(1 in arguments)) ?\n        (0 in this && this[0].nodeType == 1 && (result = this[0].getAttribute(name)) != null ? result : undefined) :\n        this.each(function(idx){\n          if (this.nodeType !== 1) return\n          if (isObject(name)) for (key in name) setAttribute(this, key, name[key])\n          else setAttribute(this, name, funcArg(this, value, idx, this.getAttribute(name)))\n        })\n    },\n    removeAttr: function(name){\n      return this.each(function(){ this.nodeType === 1 && name.split(' ').forEach(function(attribute){\n        setAttribute(this, attribute)\n      }, this)})\n    },\n    prop: function(name, value){\n      name = propMap[name] || name\n      return (1 in arguments) ?\n        this.each(function(idx){\n          this[name] = funcArg(this, value, idx, this[name])\n        }) :\n        (this[0] && this[0][name])\n    },\n    removeProp: function(name){\n      name = propMap[name] || name\n      return this.each(function(){ delete this[name] })\n    },\n    data: function(name, value){\n      var attrName = 'data-' + name.replace(capitalRE, '-$1').toLowerCase()\n\n      var data = (1 in arguments) ?\n        this.attr(attrName, value) :\n        this.attr(attrName)\n\n      return data !== null ? deserializeValue(data) : undefined\n    },\n    val: function(value){\n      if (0 in arguments) {\n        if (value == null) value = \"\"\n        return this.each(function(idx){\n          this.value = funcArg(this, value, idx, this.value)\n        })\n      } else {\n        return this[0] && (this[0].multiple ?\n           $(this[0]).find('option').filter(function(){ return this.selected }).pluck('value') :\n           this[0].value)\n      }\n    },\n    offset: function(coordinates){\n      if (coordinates) return this.each(function(index){\n        var $this = $(this),\n            coords = funcArg(this, coordinates, index, $this.offset()),\n            parentOffset = $this.offsetParent().offset(),\n            props = {\n              top:  coords.top  - parentOffset.top,\n              left: coords.left - parentOffset.left\n            }\n\n        if ($this.css('position') == 'static') props['position'] = 'relative'\n        $this.css(props)\n      })\n      if (!this.length) return null\n      if (document.documentElement !== this[0] && !$.contains(document.documentElement, this[0]))\n        return {top: 0, left: 0}\n      var obj = this[0].getBoundingClientRect()\n      return {\n        left: obj.left + window.pageXOffset,\n        top: obj.top + window.pageYOffset,\n        width: Math.round(obj.width),\n        height: Math.round(obj.height)\n      }\n    },\n    css: function(property, value){\n      if (arguments.length < 2) {\n        var element = this[0]\n        if (typeof property == 'string') {\n          if (!element) return\n          return element.style[camelize(property)] || getComputedStyle(element, '').getPropertyValue(property)\n        } else if (isArray(property)) {\n          if (!element) return\n          var props = {}\n          var computedStyle = getComputedStyle(element, '')\n          $.each(property, function(_, prop){\n            props[prop] = (element.style[camelize(prop)] || computedStyle.getPropertyValue(prop))\n          })\n          return props\n        }\n      }\n\n      var css = ''\n      if (type(property) == 'string') {\n        if (!value && value !== 0)\n          this.each(function(){ this.style.removeProperty(dasherize(property)) })\n        else\n          css = dasherize(property) + \":\" + maybeAddPx(property, value)\n      } else {\n        for (key in property)\n          if (!property[key] && property[key] !== 0)\n            this.each(function(){ this.style.removeProperty(dasherize(key)) })\n          else\n            css += dasherize(key) + ':' + maybeAddPx(key, property[key]) + ';'\n      }\n\n      return this.each(function(){ this.style.cssText += ';' + css })\n    },\n    index: function(element){\n      return element ? this.indexOf($(element)[0]) : this.parent().children().indexOf(this[0])\n    },\n    hasClass: function(name){\n      if (!name) return false\n      return emptyArray.some.call(this, function(el){\n        return this.test(className(el))\n      }, classRE(name))\n    },\n    addClass: function(name){\n      if (!name) return this\n      return this.each(function(idx){\n        if (!('className' in this)) return\n        classList = []\n        var cls = className(this), newName = funcArg(this, name, idx, cls)\n        newName.split(/\\s+/g).forEach(function(klass){\n          if (!$(this).hasClass(klass)) classList.push(klass)\n        }, this)\n        classList.length && className(this, cls + (cls ? \" \" : \"\") + classList.join(\" \"))\n      })\n    },\n    removeClass: function(name){\n      return this.each(function(idx){\n        if (!('className' in this)) return\n        if (name === undefined) return className(this, '')\n        classList = className(this)\n        funcArg(this, name, idx, classList).split(/\\s+/g).forEach(function(klass){\n          classList = classList.replace(classRE(klass), \" \")\n        })\n        className(this, classList.trim())\n      })\n    },\n    toggleClass: function(name, when){\n      if (!name) return this\n      return this.each(function(idx){\n        var $this = $(this), names = funcArg(this, name, idx, className(this))\n        names.split(/\\s+/g).forEach(function(klass){\n          (when === undefined ? !$this.hasClass(klass) : when) ?\n            $this.addClass(klass) : $this.removeClass(klass)\n        })\n      })\n    },\n    scrollTop: function(value){\n      if (!this.length) return\n      var hasScrollTop = 'scrollTop' in this[0]\n      if (value === undefined) return hasScrollTop ? this[0].scrollTop : this[0].pageYOffset\n      return this.each(hasScrollTop ?\n        function(){ this.scrollTop = value } :\n        function(){ this.scrollTo(this.scrollX, value) })\n    },\n    scrollLeft: function(value){\n      if (!this.length) return\n      var hasScrollLeft = 'scrollLeft' in this[0]\n      if (value === undefined) return hasScrollLeft ? this[0].scrollLeft : this[0].pageXOffset\n      return this.each(hasScrollLeft ?\n        function(){ this.scrollLeft = value } :\n        function(){ this.scrollTo(value, this.scrollY) })\n    },\n    position: function() {\n      if (!this.length) return\n\n      var elem = this[0],\n        // Get *real* offsetParent\n        offsetParent = this.offsetParent(),\n        // Get correct offsets\n        offset       = this.offset(),\n        parentOffset = rootNodeRE.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset()\n\n      // Subtract element margins\n      // note: when an element has margin: auto the offsetLeft and marginLeft\n      // are the same in Safari causing offset.left to incorrectly be 0\n      offset.top  -= parseFloat( $(elem).css('margin-top') ) || 0\n      offset.left -= parseFloat( $(elem).css('margin-left') ) || 0\n\n      // Add offsetParent borders\n      parentOffset.top  += parseFloat( $(offsetParent[0]).css('border-top-width') ) || 0\n      parentOffset.left += parseFloat( $(offsetParent[0]).css('border-left-width') ) || 0\n\n      // Subtract the two offsets\n      return {\n        top:  offset.top  - parentOffset.top,\n        left: offset.left - parentOffset.left\n      }\n    },\n    offsetParent: function() {\n      return this.map(function(){\n        var parent = this.offsetParent || document.body\n        while (parent && !rootNodeRE.test(parent.nodeName) && $(parent).css(\"position\") == \"static\")\n          parent = parent.offsetParent\n        return parent\n      })\n    }\n  }\n\n  // for now\n  $.fn.detach = $.fn.remove\n\n  // Generate the `width` and `height` functions\n  ;['width', 'height'].forEach(function(dimension){\n    var dimensionProperty =\n      dimension.replace(/./, function(m){ return m[0].toUpperCase() })\n\n    $.fn[dimension] = function(value){\n      var offset, el = this[0]\n      if (value === undefined) return isWindow(el) ? el['inner' + dimensionProperty] :\n        isDocument(el) ? el.documentElement['scroll' + dimensionProperty] :\n        (offset = this.offset()) && offset[dimension]\n      else return this.each(function(idx){\n        el = $(this)\n        el.css(dimension, funcArg(this, value, idx, el[dimension]()))\n      })\n    }\n  })\n\n  function traverseNode(node, fun) {\n    fun(node)\n    for (var i = 0, len = node.childNodes.length; i < len; i++)\n      traverseNode(node.childNodes[i], fun)\n  }\n\n  // Generate the `after`, `prepend`, `before`, `append`,\n  // `insertAfter`, `insertBefore`, `appendTo`, and `prependTo` methods.\n  adjacencyOperators.forEach(function(operator, operatorIndex) {\n    var inside = operatorIndex % 2 //=> prepend, append\n\n    $.fn[operator] = function(){\n      // arguments can be nodes, arrays of nodes, Zepto objects and HTML strings\n      var argType, nodes = $.map(arguments, function(arg) {\n            var arr = []\n            argType = type(arg)\n            if (argType == \"array\") {\n              arg.forEach(function(el) {\n                if (el.nodeType !== undefined) return arr.push(el)\n                else if ($.zepto.isZ(el)) return arr = arr.concat(el.get())\n                arr = arr.concat(zepto.fragment(el))\n              })\n              return arr\n            }\n            return argType == \"object\" || arg == null ?\n              arg : zepto.fragment(arg)\n          }),\n          parent, copyByClone = this.length > 1\n      if (nodes.length < 1) return this\n\n      return this.each(function(_, target){\n        parent = inside ? target : target.parentNode\n\n        // convert all methods to a \"before\" operation\n        target = operatorIndex == 0 ? target.nextSibling :\n                 operatorIndex == 1 ? target.firstChild :\n                 operatorIndex == 2 ? target :\n                 null\n\n        var parentInDocument = $.contains(document.documentElement, parent)\n\n        nodes.forEach(function(node){\n          if (copyByClone) node = node.cloneNode(true)\n          else if (!parent) return $(node).remove()\n\n          parent.insertBefore(node, target)\n          if (parentInDocument) traverseNode(node, function(el){\n            if (el.nodeName != null && el.nodeName.toUpperCase() === 'SCRIPT' &&\n               (!el.type || el.type === 'text/javascript') && !el.src){\n              var target = el.ownerDocument ? el.ownerDocument.defaultView : window\n              target['eval'].call(target, el.innerHTML)\n            }\n          })\n        })\n      })\n    }\n\n    // after    => insertAfter\n    // prepend  => prependTo\n    // before   => insertBefore\n    // append   => appendTo\n    $.fn[inside ? operator+'To' : 'insert'+(operatorIndex ? 'Before' : 'After')] = function(html){\n      $(html)[operator](this)\n      return this\n    }\n  })\n\n  zepto.Z.prototype = Z.prototype = $.fn\n\n  // Export internal API functions in the `$.zepto` namespace\n  zepto.uniq = uniq\n  zepto.deserializeValue = deserializeValue\n  $.zepto = zepto\n\n  return $\n})()\n\nwindow.Zepto = Zepto\nwindow.$ === undefined && (window.$ = Zepto)\n\n;(function($){\n  var _zid = 1, undefined,\n      slice = Array.prototype.slice,\n      isFunction = $.isFunction,\n      isString = function(obj){ return typeof obj == 'string' },\n      handlers = {},\n      specialEvents={},\n      focusinSupported = 'onfocusin' in window,\n      focus = { focus: 'focusin', blur: 'focusout' },\n      hover = { mouseenter: 'mouseover', mouseleave: 'mouseout' }\n\n  specialEvents.click = specialEvents.mousedown = specialEvents.mouseup = specialEvents.mousemove = 'MouseEvents'\n\n  function zid(element) {\n    return element._zid || (element._zid = _zid++)\n  }\n  function findHandlers(element, event, fn, selector) {\n    event = parse(event)\n    if (event.ns) var matcher = matcherFor(event.ns)\n    return (handlers[zid(element)] || []).filter(function(handler) {\n      return handler\n        && (!event.e  || handler.e == event.e)\n        && (!event.ns || matcher.test(handler.ns))\n        && (!fn       || zid(handler.fn) === zid(fn))\n        && (!selector || handler.sel == selector)\n    })\n  }\n  function parse(event) {\n    var parts = ('' + event).split('.')\n    return {e: parts[0], ns: parts.slice(1).sort().join(' ')}\n  }\n  function matcherFor(ns) {\n    return new RegExp('(?:^| )' + ns.replace(' ', ' .* ?') + '(?: |$)')\n  }\n\n  function eventCapture(handler, captureSetting) {\n    return handler.del &&\n      (!focusinSupported && (handler.e in focus)) ||\n      !!captureSetting\n  }\n\n  function realEvent(type) {\n    return hover[type] || (focusinSupported && focus[type]) || type\n  }\n\n  function add(element, events, fn, data, selector, delegator, capture){\n    var id = zid(element), set = (handlers[id] || (handlers[id] = []))\n    events.split(/\\s/).forEach(function(event){\n      if (event == 'ready') return $(document).ready(fn)\n      var handler   = parse(event)\n      handler.fn    = fn\n      handler.sel   = selector\n      // emulate mouseenter, mouseleave\n      if (handler.e in hover) fn = function(e){\n        var related = e.relatedTarget\n        if (!related || (related !== this && !$.contains(this, related)))\n          return handler.fn.apply(this, arguments)\n      }\n      handler.del   = delegator\n      var callback  = delegator || fn\n      handler.proxy = function(e){\n        e = compatible(e)\n        if (e.isImmediatePropagationStopped()) return\n        e.data = data\n        var result = callback.apply(element, e._args == undefined ? [e] : [e].concat(e._args))\n        if (result === false) e.preventDefault(), e.stopPropagation()\n        return result\n      }\n      handler.i = set.length\n      set.push(handler)\n      if ('addEventListener' in element)\n        element.addEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture))\n    })\n  }\n  function remove(element, events, fn, selector, capture){\n    var id = zid(element)\n    ;(events || '').split(/\\s/).forEach(function(event){\n      findHandlers(element, event, fn, selector).forEach(function(handler){\n        delete handlers[id][handler.i]\n      if ('removeEventListener' in element)\n        element.removeEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture))\n      })\n    })\n  }\n\n  $.event = { add: add, remove: remove }\n\n  $.proxy = function(fn, context) {\n    var args = (2 in arguments) && slice.call(arguments, 2)\n    if (isFunction(fn)) {\n      var proxyFn = function(){ return fn.apply(context, args ? args.concat(slice.call(arguments)) : arguments) }\n      proxyFn._zid = zid(fn)\n      return proxyFn\n    } else if (isString(context)) {\n      if (args) {\n        args.unshift(fn[context], fn)\n        return $.proxy.apply(null, args)\n      } else {\n        return $.proxy(fn[context], fn)\n      }\n    } else {\n      throw new TypeError(\"expected function\")\n    }\n  }\n\n  $.fn.bind = function(event, data, callback){\n    return this.on(event, data, callback)\n  }\n  $.fn.unbind = function(event, callback){\n    return this.off(event, callback)\n  }\n  $.fn.one = function(event, selector, data, callback){\n    return this.on(event, selector, data, callback, 1)\n  }\n\n  var returnTrue = function(){return true},\n      returnFalse = function(){return false},\n      ignoreProperties = /^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,\n      eventMethods = {\n        preventDefault: 'isDefaultPrevented',\n        stopImmediatePropagation: 'isImmediatePropagationStopped',\n        stopPropagation: 'isPropagationStopped'\n      }\n\n  function compatible(event, source) {\n    if (source || !event.isDefaultPrevented) {\n      source || (source = event)\n\n      $.each(eventMethods, function(name, predicate) {\n        var sourceMethod = source[name]\n        event[name] = function(){\n          this[predicate] = returnTrue\n          return sourceMethod && sourceMethod.apply(source, arguments)\n        }\n        event[predicate] = returnFalse\n      })\n\n      event.timeStamp || (event.timeStamp = Date.now())\n\n      if (source.defaultPrevented !== undefined ? source.defaultPrevented :\n          'returnValue' in source ? source.returnValue === false :\n          source.getPreventDefault && source.getPreventDefault())\n        event.isDefaultPrevented = returnTrue\n    }\n    return event\n  }\n\n  function createProxy(event) {\n    var key, proxy = { originalEvent: event }\n    for (key in event)\n      if (!ignoreProperties.test(key) && event[key] !== undefined) proxy[key] = event[key]\n\n    return compatible(proxy, event)\n  }\n\n  $.fn.delegate = function(selector, event, callback){\n    return this.on(event, selector, callback)\n  }\n  $.fn.undelegate = function(selector, event, callback){\n    return this.off(event, selector, callback)\n  }\n\n  $.fn.live = function(event, callback){\n    $(document.body).delegate(this.selector, event, callback)\n    return this\n  }\n  $.fn.die = function(event, callback){\n    $(document.body).undelegate(this.selector, event, callback)\n    return this\n  }\n\n  $.fn.on = function(event, selector, data, callback, one){\n    var autoRemove, delegator, $this = this\n    if (event && !isString(event)) {\n      $.each(event, function(type, fn){\n        $this.on(type, selector, data, fn, one)\n      })\n      return $this\n    }\n\n    if (!isString(selector) && !isFunction(callback) && callback !== false)\n      callback = data, data = selector, selector = undefined\n    if (callback === undefined || data === false)\n      callback = data, data = undefined\n\n    if (callback === false) callback = returnFalse\n\n    return $this.each(function(_, element){\n      if (one) autoRemove = function(e){\n        remove(element, e.type, callback)\n        return callback.apply(this, arguments)\n      }\n\n      if (selector) delegator = function(e){\n        var evt, match = $(e.target).closest(selector, element).get(0)\n        if (match && match !== element) {\n          evt = $.extend(createProxy(e), {currentTarget: match, liveFired: element})\n          return (autoRemove || callback).apply(match, [evt].concat(slice.call(arguments, 1)))\n        }\n      }\n\n      add(element, event, callback, data, selector, delegator || autoRemove)\n    })\n  }\n  $.fn.off = function(event, selector, callback){\n    var $this = this\n    if (event && !isString(event)) {\n      $.each(event, function(type, fn){\n        $this.off(type, selector, fn)\n      })\n      return $this\n    }\n\n    if (!isString(selector) && !isFunction(callback) && callback !== false)\n      callback = selector, selector = undefined\n\n    if (callback === false) callback = returnFalse\n\n    return $this.each(function(){\n      remove(this, event, callback, selector)\n    })\n  }\n\n  $.fn.trigger = function(event, args){\n    event = (isString(event) || $.isPlainObject(event)) ? $.Event(event) : compatible(event)\n    event._args = args\n    return this.each(function(){\n      // handle focus(), blur() by calling them directly\n      if (event.type in focus && typeof this[event.type] == \"function\") this[event.type]()\n      // items in the collection might not be DOM elements\n      else if ('dispatchEvent' in this) this.dispatchEvent(event)\n      else $(this).triggerHandler(event, args)\n    })\n  }\n\n  // triggers event handlers on current element just as if an event occurred,\n  // doesn't trigger an actual event, doesn't bubble\n  $.fn.triggerHandler = function(event, args){\n    var e, result\n    this.each(function(i, element){\n      e = createProxy(isString(event) ? $.Event(event) : event)\n      e._args = args\n      e.target = element\n      $.each(findHandlers(element, event.type || event), function(i, handler){\n        result = handler.proxy(e)\n        if (e.isImmediatePropagationStopped()) return false\n      })\n    })\n    return result\n  }\n\n  // shortcut methods for `.bind(event, fn)` for each event type\n  ;('focusin focusout focus blur load resize scroll unload click dblclick '+\n  'mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave '+\n  'change select keydown keypress keyup error').split(' ').forEach(function(event) {\n    $.fn[event] = function(callback) {\n      return (0 in arguments) ?\n        this.bind(event, callback) :\n        this.trigger(event)\n    }\n  })\n\n  $.Event = function(type, props) {\n    if (!isString(type)) props = type, type = props.type\n    var event = document.createEvent(specialEvents[type] || 'Events'), bubbles = true\n    if (props) for (var name in props) (name == 'bubbles') ? (bubbles = !!props[name]) : (event[name] = props[name])\n    event.initEvent(type, bubbles, true)\n    return compatible(event)\n  }\n\n})(Zepto)\n\n;(function($){\n  var jsonpID = +new Date(),\n      document = window.document,\n      key,\n      name,\n      rscript = /<script\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\\/script>/gi,\n      scriptTypeRE = /^(?:text|application)\\/javascript/i,\n      xmlTypeRE = /^(?:text|application)\\/xml/i,\n      jsonType = 'application/json',\n      htmlType = 'text/html',\n      blankRE = /^\\s*$/,\n      originAnchor = document.createElement('a')\n\n  originAnchor.href = window.location.href\n\n  // trigger a custom event and return false if it was cancelled\n  function triggerAndReturn(context, eventName, data) {\n    var event = $.Event(eventName)\n    $(context).trigger(event, data)\n    return !event.isDefaultPrevented()\n  }\n\n  // trigger an Ajax \"global\" event\n  function triggerGlobal(settings, context, eventName, data) {\n    if (settings.global) return triggerAndReturn(context || document, eventName, data)\n  }\n\n  // Number of active Ajax requests\n  $.active = 0\n\n  function ajaxStart(settings) {\n    if (settings.global && $.active++ === 0) triggerGlobal(settings, null, 'ajaxStart')\n  }\n  function ajaxStop(settings) {\n    if (settings.global && !(--$.active)) triggerGlobal(settings, null, 'ajaxStop')\n  }\n\n  // triggers an extra global event \"ajaxBeforeSend\" that's like \"ajaxSend\" but cancelable\n  function ajaxBeforeSend(xhr, settings) {\n    var context = settings.context\n    if (settings.beforeSend.call(context, xhr, settings) === false ||\n        triggerGlobal(settings, context, 'ajaxBeforeSend', [xhr, settings]) === false)\n      return false\n\n    triggerGlobal(settings, context, 'ajaxSend', [xhr, settings])\n  }\n  function ajaxSuccess(data, xhr, settings, deferred) {\n    var context = settings.context, status = 'success'\n    settings.success.call(context, data, status, xhr)\n    if (deferred) deferred.resolveWith(context, [data, status, xhr])\n    triggerGlobal(settings, context, 'ajaxSuccess', [xhr, settings, data])\n    ajaxComplete(status, xhr, settings)\n  }\n  // type: \"timeout\", \"error\", \"abort\", \"parsererror\"\n  function ajaxError(error, type, xhr, settings, deferred) {\n    var context = settings.context\n    settings.error.call(context, xhr, type, error)\n    if (deferred) deferred.rejectWith(context, [xhr, type, error])\n    triggerGlobal(settings, context, 'ajaxError', [xhr, settings, error || type])\n    ajaxComplete(type, xhr, settings)\n  }\n  // status: \"success\", \"notmodified\", \"error\", \"timeout\", \"abort\", \"parsererror\"\n  function ajaxComplete(status, xhr, settings) {\n    var context = settings.context\n    settings.complete.call(context, xhr, status)\n    triggerGlobal(settings, context, 'ajaxComplete', [xhr, settings])\n    ajaxStop(settings)\n  }\n\n  function ajaxDataFilter(data, type, settings) {\n    if (settings.dataFilter == empty) return data\n    var context = settings.context\n    return settings.dataFilter.call(context, data, type)\n  }\n\n  // Empty function, used as default callback\n  function empty() {}\n\n  $.ajaxJSONP = function(options, deferred){\n    if (!('type' in options)) return $.ajax(options)\n\n    var _callbackName = options.jsonpCallback,\n      callbackName = ($.isFunction(_callbackName) ?\n        _callbackName() : _callbackName) || ('Zepto' + (jsonpID++)),\n      script = document.createElement('script'),\n      originalCallback = window[callbackName],\n      responseData,\n      abort = function(errorType) {\n        $(script).triggerHandler('error', errorType || 'abort')\n      },\n      xhr = { abort: abort }, abortTimeout\n\n    if (deferred) deferred.promise(xhr)\n\n    $(script).on('load error', function(e, errorType){\n      clearTimeout(abortTimeout)\n      $(script).off().remove()\n\n      if (e.type == 'error' || !responseData) {\n        ajaxError(null, errorType || 'error', xhr, options, deferred)\n      } else {\n        ajaxSuccess(responseData[0], xhr, options, deferred)\n      }\n\n      window[callbackName] = originalCallback\n      if (responseData && $.isFunction(originalCallback))\n        originalCallback(responseData[0])\n\n      originalCallback = responseData = undefined\n    })\n\n    if (ajaxBeforeSend(xhr, options) === false) {\n      abort('abort')\n      return xhr\n    }\n\n    window[callbackName] = function(){\n      responseData = arguments\n    }\n\n    script.src = options.url.replace(/\\?(.+)=\\?/, '?$1=' + callbackName)\n    document.head.appendChild(script)\n\n    if (options.timeout > 0) abortTimeout = setTimeout(function(){\n      abort('timeout')\n    }, options.timeout)\n\n    return xhr\n  }\n\n  $.ajaxSettings = {\n    // Default type of request\n    type: 'GET',\n    // Callback that is executed before request\n    beforeSend: empty,\n    // Callback that is executed if the request succeeds\n    success: empty,\n    // Callback that is executed the the server drops error\n    error: empty,\n    // Callback that is executed on request complete (both: error and success)\n    complete: empty,\n    // The context for the callbacks\n    context: null,\n    // Whether to trigger \"global\" Ajax events\n    global: true,\n    // Transport\n    xhr: function () {\n      return new window.XMLHttpRequest()\n    },\n    // MIME types mapping\n    // IIS returns Javascript as \"application/x-javascript\"\n    accepts: {\n      script: 'text/javascript, application/javascript, application/x-javascript',\n      json:   jsonType,\n      xml:    'application/xml, text/xml',\n      html:   htmlType,\n      text:   'text/plain'\n    },\n    // Whether the request is to another domain\n    crossDomain: false,\n    // Default timeout\n    timeout: 0,\n    // Whether data should be serialized to string\n    processData: true,\n    // Whether the browser should be allowed to cache GET responses\n    cache: true,\n    //Used to handle the raw response data of XMLHttpRequest.\n    //This is a pre-filtering function to sanitize the response.\n    //The sanitized response should be returned\n    dataFilter: empty\n  }\n\n  function mimeToDataType(mime) {\n    if (mime) mime = mime.split(';', 2)[0]\n    return mime && ( mime == htmlType ? 'html' :\n      mime == jsonType ? 'json' :\n      scriptTypeRE.test(mime) ? 'script' :\n      xmlTypeRE.test(mime) && 'xml' ) || 'text'\n  }\n\n  function appendQuery(url, query) {\n    if (query == '') return url\n    return (url + '&' + query).replace(/[&?]{1,2}/, '?')\n  }\n\n  // serialize payload and append it to the URL for GET requests\n  function serializeData(options) {\n    if (options.processData && options.data && $.type(options.data) != \"string\")\n      options.data = $.param(options.data, options.traditional)\n    if (options.data && (!options.type || options.type.toUpperCase() == 'GET' || 'jsonp' == options.dataType))\n      options.url = appendQuery(options.url, options.data), options.data = undefined\n  }\n\n  $.ajax = function(options){\n    var settings = $.extend({}, options || {}),\n        deferred = $.Deferred && $.Deferred(),\n        urlAnchor, hashIndex\n    for (key in $.ajaxSettings) if (settings[key] === undefined) settings[key] = $.ajaxSettings[key]\n\n    ajaxStart(settings)\n\n    if (!settings.crossDomain) {\n      urlAnchor = document.createElement('a')\n      urlAnchor.href = settings.url\n      // cleans up URL for .href (IE only), see https://github.com/madrobby/zepto/pull/1049\n      urlAnchor.href = urlAnchor.href\n      settings.crossDomain = (originAnchor.protocol + '//' + originAnchor.host) !== (urlAnchor.protocol + '//' + urlAnchor.host)\n    }\n\n    if (!settings.url) settings.url = window.location.toString()\n    if ((hashIndex = settings.url.indexOf('#')) > -1) settings.url = settings.url.slice(0, hashIndex)\n    serializeData(settings)\n\n    var dataType = settings.dataType, hasPlaceholder = /\\?.+=\\?/.test(settings.url)\n    if (hasPlaceholder) dataType = 'jsonp'\n\n    if (settings.cache === false || (\n         (!options || options.cache !== true) &&\n         ('script' == dataType || 'jsonp' == dataType)\n        ))\n      settings.url = appendQuery(settings.url, '_=' + Date.now())\n\n    if ('jsonp' == dataType) {\n      if (!hasPlaceholder)\n        settings.url = appendQuery(settings.url,\n          settings.jsonp ? (settings.jsonp + '=?') : settings.jsonp === false ? '' : 'callback=?')\n      return $.ajaxJSONP(settings, deferred)\n    }\n\n    var mime = settings.accepts[dataType],\n        headers = { },\n        setHeader = function(name, value) { headers[name.toLowerCase()] = [name, value] },\n        protocol = /^([\\w-]+:)\\/\\//.test(settings.url) ? RegExp.$1 : window.location.protocol,\n        xhr = settings.xhr(),\n        nativeSetHeader = xhr.setRequestHeader,\n        abortTimeout\n\n    if (deferred) deferred.promise(xhr)\n\n    if (!settings.crossDomain) setHeader('X-Requested-With', 'XMLHttpRequest')\n    setHeader('Accept', mime || '*/*')\n    if (mime = settings.mimeType || mime) {\n      if (mime.indexOf(',') > -1) mime = mime.split(',', 2)[0]\n      xhr.overrideMimeType && xhr.overrideMimeType(mime)\n    }\n    if (settings.contentType || (settings.contentType !== false && settings.data && settings.type.toUpperCase() != 'GET'))\n      setHeader('Content-Type', settings.contentType || 'application/x-www-form-urlencoded')\n\n    if (settings.headers) for (name in settings.headers) setHeader(name, settings.headers[name])\n    xhr.setRequestHeader = setHeader\n\n    xhr.onreadystatechange = function(){\n      if (xhr.readyState == 4) {\n        xhr.onreadystatechange = empty\n        clearTimeout(abortTimeout)\n        var result, error = false\n        if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304 || (xhr.status == 0 && protocol == 'file:')) {\n          dataType = dataType || mimeToDataType(settings.mimeType || xhr.getResponseHeader('content-type'))\n\n          if (xhr.responseType == 'arraybuffer' || xhr.responseType == 'blob')\n            result = xhr.response\n          else {\n            result = xhr.responseText\n\n            try {\n              // http://perfectionkills.com/global-eval-what-are-the-options/\n              // sanitize response accordingly if data filter callback provided\n              result = ajaxDataFilter(result, dataType, settings)\n              if (dataType == 'script')    (1,eval)(result)\n              else if (dataType == 'xml')  result = xhr.responseXML\n              else if (dataType == 'json') result = blankRE.test(result) ? null : $.parseJSON(result)\n            } catch (e) { error = e }\n\n            if (error) return ajaxError(error, 'parsererror', xhr, settings, deferred)\n          }\n\n          ajaxSuccess(result, xhr, settings, deferred)\n        } else {\n          ajaxError(xhr.statusText || null, xhr.status ? 'error' : 'abort', xhr, settings, deferred)\n        }\n      }\n    }\n\n    if (ajaxBeforeSend(xhr, settings) === false) {\n      xhr.abort()\n      ajaxError(null, 'abort', xhr, settings, deferred)\n      return xhr\n    }\n\n    var async = 'async' in settings ? settings.async : true\n    xhr.open(settings.type, settings.url, async, settings.username, settings.password)\n\n    if (settings.xhrFields) for (name in settings.xhrFields) xhr[name] = settings.xhrFields[name]\n\n    for (name in headers) nativeSetHeader.apply(xhr, headers[name])\n\n    if (settings.timeout > 0) abortTimeout = setTimeout(function(){\n        xhr.onreadystatechange = empty\n        xhr.abort()\n        ajaxError(null, 'timeout', xhr, settings, deferred)\n      }, settings.timeout)\n\n    // avoid sending empty string (#319)\n    xhr.send(settings.data ? settings.data : null)\n    return xhr\n  }\n\n  // handle optional data/success arguments\n  function parseArguments(url, data, success, dataType) {\n    if ($.isFunction(data)) dataType = success, success = data, data = undefined\n    if (!$.isFunction(success)) dataType = success, success = undefined\n    return {\n      url: url\n    , data: data\n    , success: success\n    , dataType: dataType\n    }\n  }\n\n  $.get = function(/* url, data, success, dataType */){\n    return $.ajax(parseArguments.apply(null, arguments))\n  }\n\n  $.post = function(/* url, data, success, dataType */){\n    var options = parseArguments.apply(null, arguments)\n    options.type = 'POST'\n    return $.ajax(options)\n  }\n\n  $.getJSON = function(/* url, data, success */){\n    var options = parseArguments.apply(null, arguments)\n    options.dataType = 'json'\n    return $.ajax(options)\n  }\n\n  $.fn.load = function(url, data, success){\n    if (!this.length) return this\n    var self = this, parts = url.split(/\\s/), selector,\n        options = parseArguments(url, data, success),\n        callback = options.success\n    if (parts.length > 1) options.url = parts[0], selector = parts[1]\n    options.success = function(response){\n      self.html(selector ?\n        $('<div>').html(response.replace(rscript, \"\")).find(selector)\n        : response)\n      callback && callback.apply(self, arguments)\n    }\n    $.ajax(options)\n    return this\n  }\n\n  var escape = encodeURIComponent\n\n  function serialize(params, obj, traditional, scope){\n    var type, array = $.isArray(obj), hash = $.isPlainObject(obj)\n    $.each(obj, function(key, value) {\n      type = $.type(value)\n      if (scope) key = traditional ? scope :\n        scope + '[' + (hash || type == 'object' || type == 'array' ? key : '') + ']'\n      // handle data in serializeArray() format\n      if (!scope && array) params.add(value.name, value.value)\n      // recurse into nested objects\n      else if (type == \"array\" || (!traditional && type == \"object\"))\n        serialize(params, value, traditional, key)\n      else params.add(key, value)\n    })\n  }\n\n  $.param = function(obj, traditional){\n    var params = []\n    params.add = function(key, value) {\n      if ($.isFunction(value)) value = value()\n      if (value == null) value = \"\"\n      this.push(escape(key) + '=' + escape(value))\n    }\n    serialize(params, obj, traditional)\n    return params.join('&').replace(/%20/g, '+')\n  }\n})(Zepto)\n\n;(function($){\n  $.fn.serializeArray = function() {\n    var name, type, result = [],\n      add = function(value) {\n        if (value.forEach) return value.forEach(add)\n        result.push({ name: name, value: value })\n      }\n    if (this[0]) $.each(this[0].elements, function(_, field){\n      type = field.type, name = field.name\n      if (name && field.nodeName.toLowerCase() != 'fieldset' &&\n        !field.disabled && type != 'submit' && type != 'reset' && type != 'button' && type != 'file' &&\n        ((type != 'radio' && type != 'checkbox') || field.checked))\n          add($(field).val())\n    })\n    return result\n  }\n\n  $.fn.serialize = function(){\n    var result = []\n    this.serializeArray().forEach(function(elm){\n      result.push(encodeURIComponent(elm.name) + '=' + encodeURIComponent(elm.value))\n    })\n    return result.join('&')\n  }\n\n  $.fn.submit = function(callback) {\n    if (0 in arguments) this.bind('submit', callback)\n    else if (this.length) {\n      var event = $.Event('submit')\n      this.eq(0).trigger(event)\n      if (!event.isDefaultPrevented()) this.get(0).submit()\n    }\n    return this\n  }\n\n})(Zepto)\n\n;(function(){\n  // getComputedStyle shouldn't freak out when called\n  // without a valid element as argument\n  try {\n    getComputedStyle(undefined)\n  } catch(e) {\n    var nativeGetComputedStyle = getComputedStyle\n    window.getComputedStyle = function(element, pseudoElement){\n      try {\n        return nativeGetComputedStyle(element, pseudoElement)\n      } catch(e) {\n        return null\n      }\n    }\n  }\n})()\n  return Zepto\n}))\n"
  },
  {
    "path": "list/component.json",
    "content": "{\n  \"name\":\"list\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": [\n    \"base\"\n  ]\n}\n"
  },
  {
    "path": "list/index.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title></title>\n    <link href=\"https://fonts.googleapis.com/css?family=Dosis|Raleway:400,700|Roboto:300,400,900,\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n    <link rel=\"stylesheet\" href=\"../base/reset.css\">\n    <link rel=\"stylesheet\" href=\"../base/mobileui.css\">\n    <link rel=\"stylesheet\" href=\"../base/colors.css\">\n    <link rel=\"stylesheet\" href=\"../base/icons.css\">\n    <link rel=\"stylesheet\" href=\"../header/style.css\">\n    <link rel=\"stylesheet\" href=\"../button/style.css\">\n    <link rel=\"stylesheet\" href=\"../cover/style.css\">\n    <link rel=\"stylesheet\" href=\"style.css\">\n    <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n    <style>\n      .content { margin-left:50px}\n    </style>\n  </head>\n  <body class=\"content\">\n    <!-- BEGIN -->\n    <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">List</h2>\n    <p>\n      To use this component you need install with the command:\n    </p>\n    <div class=\"dependency tooltip\">\n    <strong>Dependency:</strong> <code>base</code>.\n    <span class=\"tooltiptext\">The dependencies will be installed together with this module</span>\n    </div>\n    <pre>mobileui install list</pre>\n    <!-- _DOC_GENERATE_CSS_DOC -->\n    <p>You can use all features the <a href=\"#base\">base</a> MobileUI in this component.</p>\n\n<textarea class=\"bind-code\" mode=\"text/html\">\n<div class=\"list\">\n  <div class=\"item\">\n    <h2>Jeanette Fletcher</h2>\n    <p class=\"text-grey-500\">jeanette.fletcher15@example.com</p>\n  </div>\n  <div class=\"item\">\n    <h2>Chad Black</h2>\n    <p class=\"text-grey-500\">chad.black48@example.com</p>\n  </div>\n  <div class=\"item\">\n    <h2>Carter hudson</h2>\n    <p class=\"text-grey-500\">carter.hudson17@example.com</p>\n  </div>\n  <div class=\"item\">\n    <h2>Vanessa brown</h2>\n    <p class=\"text-grey-500\">vanessa.brown96@example.com</p>\n  </div>\n</div></textarea>\n    <p>\n      You can put images and icons in list.\n    </p>\n<textarea class=\"bind-code\" mode=\"text/html\">\n<div class=\"list\">\n  <div class=\"item\">\n    <div class=\"left\">\n      <img class=\"avatar circle\" src=\"../assets/img/80.jpg\">\n    </div>\n    <h2>Jeanette Fletcher</h2>\n    <p class=\"text-grey-500\">jeanette.fletcher15@example.com</p>\n    <div class=\"right text-grey text-small align-right\">\n      <i class=\"icon ion-android-time\"></i> 2h\n    </div>\n  </div>\n  <div class=\"item\">\n    <div class=\"right\">\n      <img class=\"avatar radius\" src=\"../assets/img/80.jpg\">\n    </div>\n    <h2>Chad Black</h2>\n    <p class=\"text-grey-500\">chad.black48@example.com</p>\n  </div>\n  <div class=\"item\">\n    <div class=\"left\">\n      <i class=\"icon ion-home\"></i>\n    </div>\n    <h2 class=\"text-green text-strong\">Carter hudson</h2>\n    <p class=\"text-grey-500\">carter.hudson17@example.com</p>\n    <div class=\"right align-right text-small\">\n      <ul>\n        <li class=\"text-green text-strong\">2:30PM</li>\n        <li class=\" text-grey-300\">30 minutes ago</li>\n      </ul>\n    </div>\n  </div>\n  <div class=\"item\">\n    <div class=\"left\">\n      <div class=\"icon-circle text-red border-red\">\n        <i class=\"icon ion-home\"></i>\n      </div>\n    </div>\n    <h2>Vanessa brown</h2>\n    <p class=\"text-grey-500\">vanessa.brown96@example.com</p>\n  </div>\n</div></textarea>\n    <p>You can combinate with others components and class.</p>\n<textarea class=\"bind-code\" mode=\"text/html\" replace=\"body,div\">\n<body class=\"padding grey-100\">\n  <h1 class=\"text-bold\">List of contacts</h1>\n  <p>List of your contacts saved in this device.</p>\n  <div class=\"list radius white\">\n    <div class=\"item\">\n      <div class=\"left\">\n        <img class=\"avatar radius\" src=\"../assets/img/80.jpg\">\n      </div>\n      <h2>Jeanette Fletcher</h2>\n      <p class=\"text-grey-500\">jeanette.fletcher15@example.com</p>\n      <div class=\"right\">\n          <i class=\"icon ion-ios-arrow-right\"></i>\n      </div>\n    </div>\n    <div class=\"item\">\n      <h2>Chad Black</h2>\n      <div class=\"right\">\n        <button class=\"blue small radius\">Edit</button>\n      </div>\n    </div>\n    <div class=\"item\">\n      <img class=\"avatar radius left\" src=\"../assets/img/33.jpg\">\n      <i class=\"right align-top icon ion-ios-arrow-right\"></i>\n      <h2>Carter Hudson</h2>\n      <p class=\"text-grey-500\">Lorem ipsum dolor sit amet, consectetur adipisicing\n        elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>\n    </div>\n    <div class=\"item\">\n      <span class=\"avatar-badge text-small red radius padding\">4</span>\n      <img class=\"avatar circle left\" src=\"../assets/img/96.jpg\">\n      <h2>Juster Mark Slow</h2>\n      <span class=\"text-small green radius padding\">new</span>\n      <span class=\"text-small purple radius padding\">family</span>\n      <span class=\"text-small pink radius padding\">university</span>\n    </div>\n  </div>\n</body></textarea>\n    <p>Another example of a combination of components <a href=\"#header\">header</a>, <a href=\"#button\">button</a> and <a href=\"#cover\">cover</a>.</p>\n<textarea class=\"bind-code\" mode=\"text/html\" header-absolute=\"true\" hidden=\"true\">\n<div class=\"header text-white\">\n  <div class=\"left\">\n    <button class=\"icon ion-navicon-round\"></button>\n  </div>\n  <div class=\"right\">\n    <span class=\"icon-badge text-small red radius padding\">3</span>\n    <button class=\"icon ion-chatbox\"></button>\n  </div>\n</div>\n<div class=\"cover padding align-center\" style=\"background-image:url(../assets/img/backtop.png)\">\n  <div class=\"space\"></div>\n  <img class=\"avatar circle border-white shadow\" src=\"../assets/img/33.jpg\">\n  <h1 class=\"text-white\">Carter Hudson</h1>\n  <div class=\"space\"></div>\n  <div class=\"buttons-group full\">\n    <button class=\"grey-200 text-red-600 radius-left\">Contacts</button>\n    <button class=\"grey-900 text-grey-700 radius-right\">Groups</button>\n  </div>\n</div>\n<div class=\"list\">\n  <div class=\"item\">\n    <div class=\"left\">\n      <img class=\"avatar circle\" src=\"../assets/img/80.jpg\">\n    </div>\n    <h2>Jeanette Fletcher</h2>\n    <p class=\"text-grey\">+55 7979 325 655</p>\n    <div class=\"right\">\n      <small class=\"text-grey\">\n        5 min\n        <i class=\"icon ion-android-happy text-green\"></i>\n      </small>\n    </div>\n  </div>\n  <div class=\"item\">\n    <div class=\"left\">\n      <img class=\"avatar circle\" src=\"../assets/img/53.jpg\">\n    </div>\n    <h2>Emilio Dias</h2>\n    <p class=\"text-grey\">+55 8989 325 655</p>\n    <div class=\"right\">\n      <small class=\"text-grey\">\n        12 min\n        <i class=\"icon ion-android-sad red\"></i>\n      </small>\n    </div>\n  </div>\n  <div class=\"item\">\n    <div class=\"left\">\n      <img class=\"avatar circle\" src=\"../assets/img/96.jpg\">\n    </div>\n    <h2>Marcos Paulo</h2>\n    <p class=\"text-grey\">+55 1245 325 655</p>\n    <div class=\"right\">\n      <small class=\"text-grey\">\n        32 min\n        <i class=\"icon ion-android-sad red\"></i>\n      </small>\n    </div>\n  </div>\n  <div class=\"item\">\n    <div class=\"left\">\n      <img class=\"avatar circle\" src=\"../assets/img/33.jpg\">\n    </div>\n    <h2>Carter Hudson</h2>\n    <p class=\"text-grey\">+55 8797 325 655</p>\n    <div class=\"right\">\n      <small class=\"text-grey\">\n        1h 12 min\n        <i class=\"icon ion-android-happy text-green\"></i>\n      </small>\n    </div>\n  </div>\n</div></textarea>\n<p>You can add class <code>mark</code> for change color border.</p>\n<textarea class=\"bind-code\" mode=\"text/html\" header-absolute=\"true\" hidden=\"true\">\n<div class=\"list padding grey-100\">\n  <div class=\"item white mark border-green margin-button shadow\">\n    <h2><strong>Jeanette Fletcher</strong></h2>\n    <p class=\"text-grey\">+55 7979 325 655</p>\n    <p class=\"text-green\">Last activity on 5 minutes ago.</p>\n  </div>\n  <div class=\"item white mark border-light-blue margin-button shadow\">\n    <h2><strong>Jerald Dustin</strong></h2>\n    <p class=\"text-grey\">+55 8779 325 655</p>\n    <p class=\"text-light-blue\">Last activity on 15 minutes ago.</p>\n  </div>\n  <div class=\"item white mark border-purple margin-button shadow\">\n    <h2><strong>Shawn Todd</strong></h2>\n    <p class=\"text-grey\">+55 7964 325 655</p>\n    <p class=\"text-purple\">Last activity on 5 hours ago.</p>\n  </div>\n  <div class=\"item white mark border-orange margin-button shadow\">\n    <h2><strong>Jaden Taylor</strong></h2>\n    <p class=\"text-grey\">+55 7964 325 655</p>\n    <p class=\"text-orange\">Last activity on 1 day ago.</p>\n  </div>\n</div></textarea>\n\n    <!-- DONE -->\n    <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n    <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n    <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n    <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "list/style.css",
    "content": "/*Define an element as list. This feature depends on the <code>item</code> to function properly.*/\r\n.list {\r\n  width: 100%;\r\n  position: relative;\r\n  border: 1px solid #ddd;\r\n}\r\n/*Define an element as item. This feature depends on the <code>list</code> to function properly.*/\r\n.list .item {\r\n  padding: 15px;\r\n  display: inline-block;\r\n  border-bottom: 1px solid #ddd;\r\n  width: 100%;\r\n  position: relative;\r\n  font-size: 18px;\r\n}\r\n.list .item.hidden {\r\n  display: none;\r\n}\r\n.list ol, .list ul {\r\n    list-style: none;\r\n}\r\n/*Define a small space between the top and bottom elements.*/\r\n.list .item.space-small {\r\n  padding-top: 5px;\r\n  padding-bottom: 5px;\r\n}\r\n.list .item.mark {\r\n  border-right: 0;\r\n  border-top: 0;\r\n}\r\n/*Block line space with left avatar.*/\r\n.item .block {\r\n\tdisplay: -webkit-box;\r\n\tdisplay: flex;\r\n}\r\n.list .item.mark.margin-button {\r\n  border-bottom: 0;\r\n  margin-bottom: 10px;\r\n}\r\n/*Remove space in top item.*/\r\n.list .item.no-space-top {\r\n  padding-top: 0 !important;\r\n}\r\n/*Remove space in bottom item.*/\r\n.list .item.no-space-bottom {\r\n  padding-bottom: 0 !important;\r\n}\r\n.list .item.row {\r\n  display: -moz-flex;\r\n  display: -ms-flexbox;\r\n  display: flex;\r\n}\r\n/*Define that a list or an item has no borders.*/\r\n.list.no-border {\r\n  border: 0;\r\n}\r\n/*Define that a list or an item has a bottom border.*/\r\n.list.no-border .item.border-bottom,\r\n.list .item.no-border.border-bottom {\r\n  border-bottom-width: 1px;\r\n  border-bottom-style: solid;\r\n}\r\n.list.no-border .item,\r\n.list .item.no-border {\r\n  border: none;\r\n}\r\n.list .item.cover {\r\n  padding: 0;\r\n  margin-left: 20px;\r\n  height:200px;\r\n  width: -webkit-calc(100% - 40px);\r\n  width: -moz-calc(100% - 40px);\r\n  width: calc(100% - 40px);\r\n}\r\n/*Define an item without internal spaces.*/\r\n.list .item.full {\r\n  padding: 0;\r\n  display: flex;\r\n}\r\n.list .item h1,\r\n.list .item h2 {\r\n  font-size: 16px;\r\n  margin:0;\r\n  padding: 0;\r\n}\r\n.list .item h1 {\r\n  margin-top: 7px;\r\n}\r\n.list .item p {\r\n  font-size: 14px;\r\n  margin:0;\r\n  padding: 0;\r\n  line-height: 20px;\r\n}\r\n.list .item:last-child {\r\n  border-bottom:0;\r\n}\r\n.list .left {\r\n  margin-right: 10px;\r\n  min-width: 25px;\r\n}\r\n.list .right {\r\n  margin-right: 20px;\r\n  position: absolute;\r\n  top: 0;\r\n  right: 0;\r\n  height: 100%;\r\n  display: -ms-flexbox;\r\n  display: -webkit-flex;\r\n  display: flex;\r\n  -ms-flex-align: center;\r\n  -webkit-align-items: center;\r\n  -webkit-box-align: center;\r\n  align-items: center;\r\n}\r\n.list .right i {\r\n  margin-left: 5px;\r\n}\r\n.list .align-top {\r\n  -ms-flex-align: center;\r\n  -webkit-align-items: center;\r\n  align-items: baseline;\r\n  margin-top: 10px;\r\n}\r\n/*Set a fixed size for an image.*/\r\n.list .avatar {\r\n  height: 50px;\r\n}\r\n/*Set a floating badge above the image.*/\r\n.avatar-badge {\r\n  position: absolute;\r\n  margin-left: -4px;\r\n  margin-top: -3px;\r\n  border-radius: 8px;\r\n}\r\n.list .item small,\r\n.list .item small .icon {\r\n  font-size: 14px;\r\n}\r\n.list .item .icon {\r\n  font-size: 18px;\r\n}\r\n.list .item .icon.text-huge {\r\n  font-size: 32px;\r\n}\r\n.list .left .icon, .list .right .icon {\r\n  vertical-align: -webkit-baseline-middle;\r\n}\r\n/*Add big border in item or element.*/\r\n.list .border-big {\r\n  border-width: 3px;\r\n  border-style: solid;\r\n}\r\n.list .item[onclick]:active,\r\n.list a.item:active {\r\n  background-color: rgba(0, 0, 0, 0.1);\r\n  cursor: pointer;\r\n}\r\n.list .item .right .icon,\r\n.list .item .right.icon {\r\n  font-size: 24px;\r\n  padding: 0;\r\n  margin: 0;\r\n}"
  },
  {
    "path": "loading/component.json",
    "content": "{\n  \"name\":\"loading\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": [\n    \"alert\"\n  ]\n}\n"
  },
  {
    "path": "loading/index.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <title></title>\n  <link href=\"https://fonts.googleapis.com/css?family=Dosis|Raleway:400,700|Roboto:300,400,500,600,900,\" rel=\"stylesheet\">\n  <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n  <link rel=\"stylesheet\" href=\"../base/reset.css\">\n  <link rel=\"stylesheet\" href=\"../base/mobileui.css\">\n  <link rel=\"stylesheet\" href=\"../base/colors.css\">\n  <link rel=\"stylesheet\" href=\"../base/icons.css\">\n  <link rel=\"stylesheet\" href=\"../header/style.css\">\n  <link rel=\"stylesheet\" href=\"../button/style.css\">\n  <link rel=\"stylesheet\" href=\"../list/style.css\">\n  <link rel=\"stylesheet\" href=\"../cover/style.css\">\n  <link rel=\"stylesheet\" href=\"../alert/style.css\">\n  <link rel=\"stylesheet\" href=\"style.css\">\n  <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n  <style>\n    .content {\n      margin-left: 50px\n    }\n  </style>\n  <script type=\"text/javascript\" src=\"script.js\"></script>\n</head>\n<body class=\"content\">\n  <!-- BEGIN -->\n  <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">Loading</h2>\n  <p>\n    The Loading component is an overlay that prevents user interaction while indicating activity. By default, it shows a spinner based on the mode. Dynamic content can be passed and displayed with the spinner. The spinner can be hidden or customized to use several predefined options. The loading indicator is presented on top of other content even during navigation.\n  </p>\n  <div class=\"dependency tooltip\">\n    <strong>Dependency:</strong> <code>alert</code>.\n    <span class=\"tooltiptext\">The dependencies will be installed together with this module</span>\n  </div>\n  <p>\n    To use this component you need install with the command:\n  </p>\n  <pre>mobileui install loading</pre>\n  <!-- _DOC_GENERATE_CSS_DOC -->\n  <p>\n    For use you need call the function <code>loading('MESSAGE TO LOADING')</code> or <code>loading()</code> for just spinner show, and when you can close the loading component you call <code>closeLoading()</code> function.\n  </p>\n  <p>\n    You can show loading in button element, just call <code>loadingElement('ID_YOUR_ELEMENT')</code> and close call <code>closeLoading('ID_YOUR_ELEMENT')</code>. It is posible add another params: <code>loadingElement('ID_ELEMENT','MESSAGE (optional)', 'LEFT/RIGHT','COLOR')</code>\n  </p>\n  <p>\n    See this small example:\n  </p>\n<textarea class=\"bind-code\" mode=\"text/html\" header-absolute=\"true\" replace=\"body,div|padding,padding body|loading,loadingLand\" height-preview=\"200px\" border=\"true\" multiplatform=\"true\">\n<body class=\"padding\">\n  <button class=\"teal full radius margin-bottom\" onclick=\"loading('Please wait...')\">\n    Show load component\n  </button>\n  <button class=\"teal full radius margin-bottom\" id=\"myButton\" onclick=\"loadingElement('myButton')\">\n    Show load component in element\n  </button>\n  <button class=\"teal full radius margin-bottom\" id=\"myButton2\" onclick=\"loadingElement('myButton2', 'Please wait...')\">\n    Show load component in element\n  </button>\n</body></textarea>\n  <!-- DONE -->\n  <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n  <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n  <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n  <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "loading/script.js",
    "content": "window.loading = function(message){\n  var configLoading = {};\n  if(typeof message === \"object\"){\n    configLoading = message;\n  } else {\n    configLoading.message = message;\n  }\n  if(!configLoading.id){\n    configLoading.id = 'LOADING'+new Date().getTime();\n  }\n  var body = document.getElementsByTagName('body')[0];\n  if(event && event.target && event.target.parentNode && event.target.parentNode.className.indexOf('body') >= 0) {\n    body = event.target.parentNode;\n  }\n\n  var e = document.createElement('div');\n  e.className = 'backdrop show backdrop-alert';\n  e.id = configLoading.id + '_BACKDROP';\n  body.appendChild(e);\n\n  var alertMobileUI = document.createElement('div');\n  alertMobileUI.className = 'alert-mobileui alert-loading';\n  alertMobileUI.id = configLoading.id;\n  e.parentNode.appendChild(alertMobileUI);\n\n  var alertContent = document.createElement('div');\n  configLoading.class = 'white';\n  alertContent.className = 'alert ' + configLoading.class;\n  if(!window.SO || SO.code !== 2){\n    alertContent.innerHTML = '<svg class=\"loading-circle\" width=\"40\" height=\"40\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"20\" cy=\"20\" r=\"15\"></svg>';\n  } else {\n    alertContent.innerHTML = '<div class=\"loading-circle\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"37\" height=\"37\" viewBox=\"0 0 27 27\"><path d=\"M18.696,10.5c-0.275-0.479-0.113-1.09,0.365-1.367l4.759-2.751c0.482-0.273,1.095-0.11,1.37,0.368 c0.276,0.479,0.115,1.092-0.364,1.364l-4.764,2.751C19.583,11.141,18.973,10.977,18.696,10.5z\"/><path d=\"M16.133,6.938l2.75-4.765c0.276-0.478,0.889-0.643,1.367-0.366c0.479,0.276,0.641,0.886,0.365,1.366l-2.748,4.762 C17.591,8.415,16.979,8.58,16.5,8.303C16.021,8.027,15.856,7.414,16.133,6.938z\"/><path d=\"M13.499,7.5c-0.552,0-1-0.448-1-1.001V1c0-0.554,0.448-1,1-1c0.554,0,1.003,0.447,1.003,1v5.499 C14.5,7.053,14.053,7.5,13.499,7.5z\"/><path d=\"M8.303,10.5c-0.277,0.477-0.888,0.641-1.365,0.365L2.175,8.114C1.697,7.842,1.532,7.229,1.808,6.75 c0.277-0.479,0.89-0.642,1.367-0.368l4.762,2.751C8.416,9.41,8.58,10.021,8.303,10.5z\"/><path d=\"M9.133,7.937l-2.75-4.763c-0.276-0.48-0.111-1.09,0.365-1.366c0.479-0.277,1.09-0.114,1.367,0.366l2.75,4.765 c0.274,0.476,0.112,1.088-0.367,1.364C10.021,8.581,9.409,8.415,9.133,7.937z\"/><path d=\"M6.499,14.5H1c-0.554,0-1-0.448-1-1c0-0.554,0.447-1.001,1-1.001h5.499c0.552,0,1.001,0.448,1.001,1.001 C7.5,14.052,7.052,14.5,6.499,14.5z\"/><path d=\"M8.303,16.502c0.277,0.478,0.113,1.088-0.365,1.366l-4.762,2.749c-0.478,0.273-1.091,0.112-1.368-0.366 c-0.276-0.479-0.111-1.089,0.367-1.368l4.762-2.748C7.415,15.856,8.026,16.021,8.303,16.502z\"/><path d=\"M10.866,20.062l-2.75,4.767c-0.277,0.475-0.89,0.639-1.367,0.362c-0.477-0.277-0.642-0.886-0.365-1.365l2.75-4.764 c0.277-0.477,0.888-0.638,1.366-0.365C10.978,18.974,11.141,19.585,10.866,20.062z\"/><path d=\"M13.499,19.502c0.554,0,1.003,0.448,1.003,1.002v5.498c0,0.55-0.448,0.999-1.003,0.999c-0.552,0-1-0.447-1-0.999v-5.498 C12.499,19.95,12.946,19.502,13.499,19.502z\"/><path d=\"M17.867,19.062l2.748,4.764c0.275,0.479,0.113,1.088-0.365,1.365c-0.479,0.276-1.091,0.112-1.367-0.362l-2.75-4.767 c-0.276-0.477-0.111-1.088,0.367-1.365C16.979,18.424,17.591,18.585,17.867,19.062z\"/><path d=\"M18.696,16.502c0.276-0.48,0.887-0.646,1.365-0.367l4.765,2.748c0.479,0.279,0.64,0.889,0.364,1.368 c-0.275,0.479-0.888,0.64-1.37,0.366l-4.759-2.749C18.583,17.59,18.421,16.979,18.696,16.502z\"/><path d=\"M25.998,12.499h-5.501c-0.552,0-1.001,0.448-1.001,1.001c0,0.552,0.447,1,1.001,1h5.501c0.554,0,1.002-0.448,1.002-1 C27,12.946,26.552,12.499,25.998,12.499z\"/></svg></div>';\n  }\n  if(configLoading.message) {\n    alertContent.innerHTML += '<p>'+configLoading.message+'</p>';\n  }\n  alertMobileUI.appendChild(alertContent);\n}\n\nwindow.loadingElement = function(e, message, position, color){\n  if(typeof(e) != \"object\"){\n    e = document.getElementById(e);\n  }\n  var withMessage = message ? 'with-message' : '';\n  if(!color){\n    color = 'white-loading';\n  } \n  \n  if(!position) {\n    position = '';\n  }\n  var divLoading = document.createElement('div');\n  var spinner = '';\n  if(!window.SO || SO.code !== 2){\n    spinner = '<svg class=\"loading-circle loading-element '+color+' '+withMessage+' '+position+'\" width=\"40\" height=\"40\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"20\" cy=\"20\" r=\"15\"></svg>';\n  } else {\n    spinner = '<svg class=\"loading-circle loading-element '+color+' '+withMessage+' '+position+'\" xmlns=\"http://www.w3.org/2000/svg\" width=\"37\" height=\"37\" viewBox=\"0 0 27 27\"><path d=\"M18.696,10.5c-0.275-0.479-0.113-1.09,0.365-1.367l4.759-2.751c0.482-0.273,1.095-0.11,1.37,0.368 c0.276,0.479,0.115,1.092-0.364,1.364l-4.764,2.751C19.583,11.141,18.973,10.977,18.696,10.5z\"/><path d=\"M16.133,6.938l2.75-4.765c0.276-0.478,0.889-0.643,1.367-0.366c0.479,0.276,0.641,0.886,0.365,1.366l-2.748,4.762 C17.591,8.415,16.979,8.58,16.5,8.303C16.021,8.027,15.856,7.414,16.133,6.938z\"/><path d=\"M13.499,7.5c-0.552,0-1-0.448-1-1.001V1c0-0.554,0.448-1,1-1c0.554,0,1.003,0.447,1.003,1v5.499 C14.5,7.053,14.053,7.5,13.499,7.5z\"/><path d=\"M8.303,10.5c-0.277,0.477-0.888,0.641-1.365,0.365L2.175,8.114C1.697,7.842,1.532,7.229,1.808,6.75 c0.277-0.479,0.89-0.642,1.367-0.368l4.762,2.751C8.416,9.41,8.58,10.021,8.303,10.5z\"/><path d=\"M9.133,7.937l-2.75-4.763c-0.276-0.48-0.111-1.09,0.365-1.366c0.479-0.277,1.09-0.114,1.367,0.366l2.75,4.765 c0.274,0.476,0.112,1.088-0.367,1.364C10.021,8.581,9.409,8.415,9.133,7.937z\"/><path d=\"M6.499,14.5H1c-0.554,0-1-0.448-1-1c0-0.554,0.447-1.001,1-1.001h5.499c0.552,0,1.001,0.448,1.001,1.001 C7.5,14.052,7.052,14.5,6.499,14.5z\"/><path d=\"M8.303,16.502c0.277,0.478,0.113,1.088-0.365,1.366l-4.762,2.749c-0.478,0.273-1.091,0.112-1.368-0.366 c-0.276-0.479-0.111-1.089,0.367-1.368l4.762-2.748C7.415,15.856,8.026,16.021,8.303,16.502z\"/><path d=\"M10.866,20.062l-2.75,4.767c-0.277,0.475-0.89,0.639-1.367,0.362c-0.477-0.277-0.642-0.886-0.365-1.365l2.75-4.764 c0.277-0.477,0.888-0.638,1.366-0.365C10.978,18.974,11.141,19.585,10.866,20.062z\"/><path d=\"M13.499,19.502c0.554,0,1.003,0.448,1.003,1.002v5.498c0,0.55-0.448,0.999-1.003,0.999c-0.552,0-1-0.447-1-0.999v-5.498 C12.499,19.95,12.946,19.502,13.499,19.502z\"/><path d=\"M17.867,19.062l2.748,4.764c0.275,0.479,0.113,1.088-0.365,1.365c-0.479,0.276-1.091,0.112-1.367-0.362l-2.75-4.767 c-0.276-0.477-0.111-1.088,0.367-1.365C16.979,18.424,17.591,18.585,17.867,19.062z\"/><path d=\"M18.696,16.502c0.276-0.48,0.887-0.646,1.365-0.367l4.765,2.748c0.479,0.279,0.64,0.889,0.364,1.368 c-0.275,0.479-0.888,0.64-1.37,0.366l-4.759-2.749C18.583,17.59,18.421,16.979,18.696,16.502z\"/><path d=\"M25.998,12.499h-5.501c-0.552,0-1.001,0.448-1.001,1.001c0,0.552,0.447,1,1.001,1h5.501c0.554,0,1.002-0.448,1.002-1 C27,12.946,26.552,12.499,25.998,12.499z\"/></svg>';\n  }\n  e.oldValue = e.innerHTML;\n  e.innerHTML = spinner;\n  e.disabled=true;\n  if(message){\n    e.innerHTML += message;\n  }\n}\n\nwindow.closeLoading = function(e){\n  if(e){\n    if(typeof(e) != \"object\"){\n      e = document.getElementById(e);\n    }\n    e.innerHTML = e.oldValue;\n    e.disabled=false;\n  } else {\n    var alert = document.getElementsByClassName('alert-mobileui')[0];\n    var alertId = alert.id;\n    var alert = document.getElementById(alertId);\n    alert.parentNode.removeChild(alert);\n    var backdrop = document.getElementById(alertId+'_BACKDROP');\n    backdrop.parentNode.removeChild(backdrop);\n  }\n}\n"
  },
  {
    "path": "loading/style.css",
    "content": ".alert-loading .alert {\n  padding: 24px;\n  text-align: center;\n}\n.loading-circle {\n  fill: transparent;\n  stroke: #009688;\n  stroke-width: 5;\n  -webkit-animation: dash 2s ease infinite,rotate 2s linear infinite;\n  -moz-animation: dash 2s ease infinite,rotate 2s linear infinite;\n  -o-animation: dash 2s ease infinite,rotate 2s linear infinite;\n  animation: dash 2s ease infinite,rotate 2s linear infinite;\n  margin:auto;\n}\n.loading-circle.loading-element {\n  zoom:0.55;\n  margin-top: -20px;\n  margin-left: -20px;\n  position: absolute;\n}\nbutton .loading-circle.loading-element {\n  left: 50%;\n  margin-left: -20px;\n  top: 50%;\n  margin-top: -20px;\n}\n.loading-circle.with-message.loading-element {\n  margin-left: -50px;\n  margin-top: 17px;\n  top: auto;\n  left: auto;\n}\n.loading-circle.loading-element.left {\n  float: left;\n  position: inherit;\n  margin-left:0;\n}\n.loading-circle.loading-element.right {\n  float: right;\n  position: inherit;\n  margin-left:0;\n}\n.loading-circle.white-loading{\n  stroke: rgba(255,255,255,0.8);\n}\n.loading-circle.with-message {\n  margin-right: 10px;\n}\n.platform-ios .loading-circle {\n  fill: #868686;\n  -webkit-animation: none;\n  -moz-animation: none;\n  -o-animation: none;\n  animation: none;\n  stroke:none;\n  stroke-width:0;\n}\n.platform-ios .loading-circle.loading-element.white-loading {\n  fill: rgba(255,255,255,0.8);\n}\n.platform-ios .loading-circle path:nth-of-type(1) {\n  -webkit-animation: pulse 1s infinite linear;\n  -moz-animation: pulse 1s infinite linear;\n  -o-animation: pulse 1s infinite linear;\n  animation: pulse 1s infinite linear;\n}\n.platform-ios .loading-circle path:nth-of-type(2) {\n  -webkit-animation: pulse 1s -.083s infinite linear;\n  -moz-animation: pulse 1s -.083s infinite linear;\n  -o-animation: pulse 1s -.083s infinite linear;\n  animation: pulse 1s -.083s infinite linear;\n}\n.platform-ios .loading-circle path:nth-of-type(3) {\n  -webkit-animation: pulse 1s -.166s infinite linear;\n  -moz-animation: pulse 1s -.166s infinite linear;\n  -o-animation: pulse 1s -.166s infinite linear;\n  animation: pulse 1s -.166s infinite linear;\n}\n.platform-ios .loading-circle path:nth-of-type(4) {\n  -webkit-animation: pulse 1s -.249s infinite linear;\n  -moz-animation: pulse 1s -.249s infinite linear;\n  -o-animation: pulse 1s -.249s infinite linear;\n  animation: pulse 1s -.249s infinite linear;\n}\n.platform-ios .loading-circle path:nth-of-type(5) {\n  -webkit-animation: pulse 1s -.332s infinite linear;\n  -moz-animation: pulse 1s -.332s infinite linear;\n  -o-animation: pulse 1s -.332s infinite linear;\n  animation: pulse 1s -.332s infinite linear;\n}\n.platform-ios .loading-circle path:nth-of-type(6) {\n  -webkit-animation: pulse 1s -.415s infinite linear;\n  -moz-animation: pulse 1s -.415s infinite linear;\n  -o-animation: pulse 1s -.415s infinite linear;\n  animation: pulse 1s -.415s infinite linear;\n}\n.platform-ios .loading-circle path:nth-of-type(7) {\n  -webkit-animation: pulse 1s -.498s infinite linear;\n  -moz-animation: pulse 1s -.498s infinite linear;\n  -o-animation: pulse 1s -.498s infinite linear;\n  animation: pulse 1s -.498s infinite linear;\n}\n.platform-ios .loading-circle path:nth-of-type(8) {\n  -webkit-animation: pulse 1s -.581s infinite linear;\n  -moz-animation: pulse 1s -.581s infinite linear;\n  -o-animation: pulse 1s -.581s infinite linear;\n  animation: pulse 1s -.581s infinite linear;\n}\n.platform-ios .loading-circle path:nth-of-type(9) {\n  -webkit-animation: pulse 1s -.664s infinite linear;\n  -moz-animation: pulse 1s -.664s infinite linear;\n  -o-animation: pulse 1s -.664s infinite linear;\n  animation: pulse 1s -.664s infinite linear;\n}\n.platform-ios .loading-circle path:nth-of-type(10) {\n  -webkit-animation: pulse 1s -.747s infinite linear;\n  -moz-animation: pulse 1s -.747s infinite linear;\n  -o-animation: pulse 1s -.747s infinite linear;\n  animation: pulse 1s -.747s infinite linear;\n}\n.platform-ios .alert-loading .loading-circle path:nth-of-type(11) {\n  -webkit-animation: pulse 1s -.83s infinite linear;\n  -moz-animation: pulse 1s -.83s infinite linear;\n  -o-animation: pulse 1s -.83s infinite linear;\n  animation: pulse 1s -.83s infinite linear;\n}\n.platform-ios .alert-loading .loading-circle path:nth-of-type(12) {\n  -webkit-animation: pulse 1s -.913s infinite linear;\n  -moz-animation: pulse 1s -.913s infinite linear;\n  -o-animation: pulse 1s -.913s infinite linear;\n  animation: pulse 1s -.913s infinite linear;\n}\n\n.platform-ios .loading-circle.white-loading path:nth-of-type(1) {\n  -webkit-animation: pulse-white 1s infinite linear;\n  -moz-animation: pulse-white 1s infinite linear;\n  -o-animation: pulse-white 1s infinite linear;\n  animation: pulse-white 1s infinite linear;\n}\n.platform-ios .loading-circle.white-loading path:nth-of-type(2) {\n  -webkit-animation: pulse-white 1s -.083s infinite linear;\n  -moz-animation: pulse-white 1s -.083s infinite linear;\n  -o-animation: pulse-white 1s -.083s infinite linear;\n  animation: pulse-white 1s -.083s infinite linear;\n}\n.platform-ios .loading-circle.white-loading path:nth-of-type(3) {\n  -webkit-animation: pulse-white 1s -.166s infinite linear;\n  -moz-animation: pulse-white 1s -.166s infinite linear;\n  -o-animation: pulse-white 1s -.166s infinite linear;\n  animation: pulse-white 1s -.166s infinite linear;\n}\n.platform-ios .loading-circle.white-loading path:nth-of-type(4) {\n  -webkit-animation: pulse-white 1s -.249s infinite linear;\n  -moz-animation: pulse-white 1s -.249s infinite linear;\n  -o-animation: pulse-white 1s -.249s infinite linear;\n  animation: pulse-white 1s -.249s infinite linear;\n}\n.platform-ios .loading-circle.white-loading path:nth-of-type(5) {\n  -webkit-animation: pulse-white 1s -.332s infinite linear;\n  -moz-animation: pulse-white 1s -.332s infinite linear;\n  -o-animation: pulse-white 1s -.332s infinite linear;\n  animation: pulse-white 1s -.332s infinite linear;\n}\n.platform-ios .loading-circle.white-loading path:nth-of-type(6) {\n  -webkit-animation: pulse-white 1s -.415s infinite linear;\n  -moz-animation: pulse-white 1s -.415s infinite linear;\n  -o-animation: pulse-white 1s -.415s infinite linear;\n  animation: pulse-white 1s -.415s infinite linear;\n}\n.platform-ios .loading-circle.white-loading path:nth-of-type(7) {\n  -webkit-animation: pulse-white 1s -.498s infinite linear;\n  -moz-animation: pulse-white 1s -.498s infinite linear;\n  -o-animation: pulse-white 1s -.498s infinite linear;\n  animation: pulse-white 1s -.498s infinite linear;\n}\n.platform-ios .loading-circle.white-loading path:nth-of-type(8) {\n  -webkit-animation: pulse-white 1s -.581s infinite linear;\n  -moz-animation: pulse-white 1s -.581s infinite linear;\n  -o-animation: pulse-white 1s -.581s infinite linear;\n  animation: pulse-white 1s -.581s infinite linear;\n}\n.platform-ios .loading-circle.white-loading path:nth-of-type(9) {\n  -webkit-animation: pulse-white 1s -.664s infinite linear;\n  -moz-animation: pulse-white 1s -.664s infinite linear;\n  -o-animation: pulse-white 1s -.664s infinite linear;\n  animation: pulse-white 1s -.664s infinite linear;\n}\n.platform-ios .loading-circle.white-loading path:nth-of-type(10) {\n  -webkit-animation: pulse-white 1s -.747s infinite linear;\n  -moz-animation: pulse-white 1s -.747s infinite linear;\n  -o-animation: pulse-white 1s -.747s infinite linear;\n  animation: pulse-white 1s -.747s infinite linear;\n}\n.platform-ios .alert-loading.white-loading .loading-circle path:nth-of-type(11) {\n  -webkit-animation: pulse-white 1s -.83s infinite linear;\n  -moz-animation: pulse-white 1s -.83s infinite linear;\n  -o-animation: pulse-white 1s -.83s infinite linear;\n  animation: pulse-white 1s -.83s infinite linear;\n}\n.platform-ios .alert-loading.white-loading .loading-circle path:nth-of-type(12) {\n  -webkit-animation: pulse-white 1s -.913s infinite linear;\n  -moz-animation: pulse-white 1s -.913s infinite linear;\n  -o-animation: pulse-white 1s -.913s infinite linear;\n  animation: pulse-white 1s -.913s infinite linear;\n}\n\n@-webkit-keyframes pulse {\n  50% { fill: #868686; }\n  to { fill: rgba(134,134,134,.4); }\n}\n@-moz-keyframes pulse {\n  50% { fill: #868686; }\n  to { fill: rgba(134,134,134,.4); }\n}\n@-o-keyframes pulse {\n  50% { fill: #868686; }\n  to { fill: rgba(134,134,134,.4); }\n}\n@keyframes pulse {\n  50% { fill: #868686; }\n  to { fill: rgba(134,134,134,.4); }\n}\n@-webkit-keyframes pulse-white {\n  50% { fill: rgba(255,255,255,0.8); }\n  to { fill: rgba(255,255,255,0.2); }\n}\n@-moz-keyframes pulse-white {\n  50% { fill: rgba(255,255,255,0.8); }\n  to { fill: rgba(255,255,255,0.2); }\n}\n@-o-keyframes pulse-white {\n  50% { fill: rgba(255,255,255,0.8); }\n  to { fill: rgba(255,255,255,0.2); }\n}\n@keyframes pulse-white {\n  50% { fill: rgba(255,255,255,0.8); }\n  to { fill: rgba(255,255,255,0.2); }\n}\n\n@-webkit-keyframes iosIntro {\n  from {\n    -webkit-transform: scale(0);\n    opacity: 0;\n  }\n  to {\n    -webkit-transform: scale(1);\n    opacity: 1;\n  }\n}\n@-moz-keyframes iosIntro {\n  from {\n    -moz-transform: scale(0);\n    opacity: 0;\n  }\n  to {\n    -moz-transform: scale(1);\n    opacity: 1;\n  }\n}\n@-o-keyframes iosIntro {\n  from {\n    -o-transform: scale(0);\n    opacity: 0;\n  }\n  to {\n    -o-transform: scale(1);\n    opacity: 1;\n  }\n}\n@keyframes iosIntro {\n  from {\n    transform: scale(0);\n    opacity: 0;\n  }\n  to {\n    transform: scale(1);\n    opacity: 1;\n  }\n}\n.alert-mobileui.alert-loading .alert p {\n  margin: 0;\n  margin-top: 15px !important;\n  text-align: center;\n}\n@-webkit-keyframes dash {\n\t0% {\n\t\tstroke-dasharray: 1,95;\n\t\tstroke-dashoffset: 0;\n\t}\n\t50% {\n\t\tstroke-dasharray: 85,95;\n\t\tstroke-dashoffset: -25;\n\t}\n\t100% {\n\t\tstroke-dasharray: 85,95;\n\t\tstroke-dashoffset: -93;\n\t}\n}\n@-moz-keyframes dash {\n\t0% {\n\t\tstroke-dasharray: 1,95;\n\t\tstroke-dashoffset: 0;\n\t}\n\t50% {\n\t\tstroke-dasharray: 85,95;\n\t\tstroke-dashoffset: -25;\n\t}\n\t100% {\n\t\tstroke-dasharray: 85,95;\n\t\tstroke-dashoffset: -93;\n\t}\n}\n@-o-keyframes dash {\n\t0% {\n\t\tstroke-dasharray: 1,95;\n\t\tstroke-dashoffset: 0;\n\t}\n\t50% {\n\t\tstroke-dasharray: 85,95;\n\t\tstroke-dashoffset: -25;\n\t}\n\t100% {\n\t\tstroke-dasharray: 85,95;\n\t\tstroke-dashoffset: -93;\n\t}\n}\n@keyframes dash {\n\t0% {\n\t\tstroke-dasharray: 1,95;\n\t\tstroke-dashoffset: 0;\n\t}\n\t50% {\n\t\tstroke-dasharray: 85,95;\n\t\tstroke-dashoffset: -25;\n\t}\n\t100% {\n\t\tstroke-dasharray: 85,95;\n\t\tstroke-dashoffset: -93;\n\t}\n}\n\n@-webkit-keyframes rotate {\n\t0% {-webkit-transform: rotate(0deg); }\n\t100% {-webkit-transform: rotate(360deg); }\n}\n@-moz-keyframes rotate {\n\t0% {-moz-transform: rotate(0deg); }\n\t100% {-moz-transform: rotate(360deg); }\n}\n@-o-keyframes rotate {\n\t0% {-o-transform: rotate(0deg); }\n\t100% {-o-transform: rotate(360deg); }\n}\n@keyframes rotate {\n\t0% {transform: rotate(0deg); }\n\t100% {transform: rotate(360deg); }\n}\n"
  },
  {
    "path": "menu/component.json",
    "content": "{\n  \"name\":\"menu\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": [\n    \"base\",\n    \"list\"\n  ]\n}\n"
  },
  {
    "path": "menu/index.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title></title>\n    <link href=\"https://fonts.googleapis.com/css?family=Dosis|Raleway:400,700|Roboto:300,400,900,\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n    <link rel=\"stylesheet\" href=\"../base/reset.css\">\n    <link rel=\"stylesheet\" href=\"../base/mobileui.css\">\n    <link rel=\"stylesheet\" href=\"../base/colors.css\">\n    <link rel=\"stylesheet\" href=\"../base/icons.css\">\n    <link rel=\"stylesheet\" href=\"../header/style.css\">\n    <link rel=\"stylesheet\" href=\"../list/style.css\">\n    <link rel=\"stylesheet\" href=\"../button/style.css\">\n    <link rel=\"stylesheet\" href=\"../cover/style.css\">\n    <link rel=\"stylesheet\" href=\"style.css\">\n    <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n    <style>\n      .content { margin-left:50px}\n    </style>\n    <script type=\"text/javascript\" src=\"../base/base.js\"></script>\n    <script type=\"text/javascript\" src=\"../menu/script.js\"></script>\n  </head>\n  <body class=\"content\">\n    <!-- BEGIN -->\n    <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">Menu</h2>\n    <p>\n      Menu is a side-menu navigation that can be dragged out or toggled to show. The content of a menu will be hidden when the menu is closed.\n      Menu adapts to the appropriate style based on the platform.\n    </p>\n    <p>\n      To use this component you need install with the command:\n    </p>\n    <div class=\"dependency tooltip\">\n      <strong>Dependency:</strong> <code>base</code> and <code>list</code>.\n      <span class=\"tooltiptext\">The dependencies will be installed together with this module</span>\n    </div>\n    <pre>mobileui install menu</pre>\n    <!-- _DOC_GENERATE_CSS_DOC -->\n    <p>\n      Your menu need have <code>id</code> and for you open menu, just call function <code>openMenu('ID_YOUR_MENU')</code>, for close menu just call function <code>closeMenu('ID_YOU_MENU')</code>.\n      By default the menu is created in the left, but you can add class <code>menu-right</code> for create menu in right position.\n    </p>\n    <p>See example:</p>\n<textarea class=\"bind-code\" mode=\"text/html\" header-absolute=\"true\" replace=\"body,div|grey-200,grey-200 body\" height-preview=\"400px\" border=\"true\" multiplatform=\"true\">\n<body class=\"padding grey-200\">\n  <div class=\"menu purple\" id=\"myFirstMenu\">\n    <button class=\"purple-100 full\" onclick=\"closeMenu('myFirstMenu')\">Close menu </button>\n  </div>\n  <div class=\"menu menu-right green\" id=\"mySecondMenu\">\n    <button class=\"green-100 full\" onclick=\"closeMenu('mySecondMenu')\">Close menu</button>\n  </div>\n  <button class=\"purple\" onclick=\"openMenu('myFirstMenu')\">Open menu left</button>\n  <button class=\"green\" onclick=\"openMenu('mySecondMenu')\">Open menu right</button>\n</body></textarea>\n    <p>\n      You can use all features of <a href=\"#colors\">colors theme</a>, <a href=\"#icons\">icons</a> and <a href=\"#list\">list</a> in menu.\n    </p>\n<textarea class=\"bind-code\" mode=\"text/html\" header-absolute=\"true\" replace=\"body,div|grey-200,grey-200 body\" height-preview=\"400px\" border=\"true\" multiplatform=\"true\">\n<body class=\"padding grey-200\">\n  <div class=\"menu white\" id=\"myMenu\">\n    <div class=\"list no-border\">\n      <div class=\"item blue\">\n        <div class=\"left\">\n          <img class=\"avatar circle\" src=\"../assets/img/80.jpg\">\n        </div>\n        <h1>Jeanette Fletcher</h1>\n        <p>jeanette@example.com</p>\n      </div>\n      <a class=\"item\">\n        <div class=\"left\">\n          <i class=\"icon ion-ios-list-outline\"></i>\n        </div>\n        <h1>My projects</h1>\n      </a>\n      <a class=\"item\">\n        <div class=\"left\">\n          <i class=\"icon ion-ios-chatbubble-outline\"></i>\n        </div>\n        <h1>Messages</h1>\n        <div class=\"right\">\n          <span class=\"text-small red radius padding\">6</span>\n        </div>\n      </a>\n      <a class=\"item\">\n        <div class=\"left\">\n          <i class=\"icon ion-ios-search\"></i>\n        </div>\n        <h1>Search projects</h1>\n      </a>\n      <a onclick=\"closeMenu('myMenu')\" class=\"item\">\n        <div class=\"left\">\n          <i class=\"icon ion-ios-close-outline\"></i>\n        </div>\n        <h1>Close menu</h1>\n      </a>\n    </div>\n  </div>\n  <button class=\"blue\" onclick=\"openMenu('myMenu')\">Open menu</button>\n  <p>\n    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor\n    incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud\n    exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute\n    irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla\n    pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia\n    deserunt mollit anim id est laborum.\n  </p>\n</body></textarea>\n    <p>\n      You can combinate <a href=\"#cover\">cover</a>, <a href=\"#badge\">badge</a>, <a href=\"#card\">card</a>, <a href=\"#header\">header</a>\n      and <a href=\"#button\">button</a> for create a good apps.\n     </p>\n<textarea class=\"bind-code\" mode=\"text/html\" header-absolute=\"true\" replace=\"body,div|grey-100,grey-100 body\"\n          height-preview=\"500px\" border=\"true\" multiplatform=\"true\">\n<body class=\"padding grey-100 has-header has-sub-header\">\n  <div class=\"menu teal-900 cover blend-multiply\" id=\"menuDiscover\" style=\"background-image:url(../assets/img/nature1.jpg)\">\n    <div class=\"cover align-center\">\n      <img class=\"avatar circle border-white shadow\" src=\"../assets/img/33.jpg\">\n      <h1 class=\"text-teal-300\">Carter Hudson</h1>\n      <p class=\"text-grey\">carter.hudson@mail.com</p>\n    </div>\n    <div class=\"list no-border\">\n      <a class=\"item space-small\">\n        <div class=\"left\">\n          <i class=\"icon ion-ios-heart-outline grey-300\"></i>\n        </div>\n        <h1 class=\"text-grey-300\">My Discoveries</h1>\n      </a>\n      <a class=\"item space-small\">\n        <div class=\"left\">\n          <i class=\"icon ion-ios-flame-outline grey-300\"></i>\n        </div>\n        <h1 class=\"text-grey-300\">Trending</h1>\n        <div class=\"right\">\n          <span class=\"text-small border-red text-red radius padding\">12</span>\n        </div>\n      </a>\n      <a class=\"item space-small\">\n        <div class=\"left\">\n          <i class=\"icon ion-ios-location-outline grey-300\"></i>\n        </div>\n        <h1 class=\"text-grey-300\">Places</h1>\n      </a>\n      <a class=\"item space-small\">\n        <div class=\"left\">\n          <i class=\"icon ion-ios-person-outline grey-300\"></i>\n        </div>\n        <h1 class=\"text-grey-300\">People</h1>\n        <div class=\"right\">\n          <span class=\"text-small border-green text-green radius padding\">7</span>\n        </div>\n      </a>\n      <a class=\"item space-small\">\n        <div class=\"left\">\n          <i class=\"icon ion-ios-chatbubble-outline grey-300\"></i>\n        </div>\n        <h1 class=\"text-grey-300\">Notifications</h1>\n      </a>\n    </div>\n  </div>\n  <div class=\"header teal\">\n    <div class=\"left\">\n      <button class=\"icon ion-navicon-round\" onclick=\"openMenu('menuDiscover')\"></button>\n    </div>\n    <h1 class=\"title align-center\">My Discoveries</h1>\n    <div class=\"right\">\n      <span class=\"icon-badge text-small red radius padding\">3</span>\n      <button class=\"icon ion-earth\"></button>\n    </div>\n  </div>\n  <div class=\"header sub teal\">\n    <div class=\"buttons-group full small\">\n      <button class=\"teal-700 border-teal radius-left\">Latests</button>\n      <button class=\"teal-600 border-teal\">Favorites</button>\n      <button class=\"teal-600 border-teal radius-right\">All</button>\n    </div>\n  </div>\n  <div class=\"space\"></div>\n  <div class=\"list white no-border radius shadow\">\n    <div class=\"item\">\n      <div class=\"left\">\n        <img class=\"avatar radius\" src=\"../assets/img/33.jpg\" />\n      </div>\n      <h2 class=\"strong\">Carter Hudson</h2>\n      <p class=\"text-red-400\">@carterhudson</p>\n      <p class=\"text-grey\">3min ago</p>\n      <div class=\"right\">\n        <button class=\"white icon ion-ios-heart-outline text-red-400\"> 23</button>\n      </div>\n    </div>\n    <div class=\"item full\">\n      <img src=\"../assets/img/nature2.jpg\"/>\n    </div>\n    <div class=\"item text-grey-600\">\n      <p>\n        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore\n        et dolore magna aliqua.\n      </p>\n    </div>\n  </div>\n</body></textarea>\n    <p>For advanced mode you can listen to the event <code>openMenu</code> and <code>closeMenu</code>.</p>\n<textarea class=\"bind-just-code\" mode=\"text/javascript\">\ndocument.addEventListener('openMenu', function(e){\n  //It does something when the menu is opened\n  //You can access name of menu in: e.detail.menu\n})\n\ndocument.addEventListener('closeMenu', function(e){\n  //It does something when the menu is closed.\n  //You can access name of menu in: e.detail.menu\n})</textarea>\n\n  <p>Your can enable the Swiper event (open or close the menu when clicking and dragging horizontally):</p>\n<textarea class=\"bind-just-code\" mode=\"text/javascript\">\nwindow.menu.enableSwiper('myFirstMenu')\n</textarea>\n\n    <!-- DONE -->\n    <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n    <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n    <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n    <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "menu/script.js",
    "content": "window.menu = {}\n\nwindow.openMenu = function (m) {\n  var name = m\n  var m = document.getElementById(m)\n  if (m.className.indexOf('menu') >= 0 && m.className.indexOf('open') < 0) {\n    var e = document.createElement('div')\n    e.className = 'backdrop backdrop-menu'\n    m.parentNode.appendChild(e)\n    setTimeout(function () {\n      e.className += ' show'\n    })\n    e.addEventListener('click', function (evt) {\n      window.closeMenu(name)\n    }, false)\n    if (SO.code === 2) {\n      m.style.height = window.innerHeight + 'px'\n      var classSideMenu = ' side-menu'\n      window.menu.position = 'left'\n      if (m.className.indexOf('menu-right') >= 0) {\n        classSideMenu = ' side-menu-right'\n        window.menu.position = 'right'\n        var headers = document.getElementsByClassName('header')\n        if (headers.length) {\n          for (i in headers) {\n            if (headers[i].className && headers[i].className.indexOf('side-menu-right') < 0) {\n              headers[i].className += ' side-menu-right'\n            }\n          }\n        }\n      }\n      if (m.parentNode.className.indexOf('body') >= 0) {\n        m.parentNode.className += classSideMenu\n      } else {\n        document.getElementsByTagName('body')[0].className += classSideMenu\n      }\n    }\n    m.className += ' open'\n    var customEvent = new CustomEvent('openMenu', { 'detail': {menu: name}})\n    document.dispatchEvent(customEvent)\n    window.menu.openFired = true\n    document.addEventListener('firedCloseMenu', function (e) {\n      window.closeMenu(name)\n    }, false)\n  }\n}\nwindow.closeMenu = function (m) {\n  var name = m\n  m = document.getElementById(m)\n  if (m.className.indexOf('open') < 0) {\n    return false\n  }\n  var customEvent = new CustomEvent('closeMenu', { 'detail': {menu: name}})\n  document.dispatchEvent(customEvent)\n  window.menu.openFired = false\n  m.className = m.className.replace('open', '')\n  var headers = document.getElementsByClassName('header')\n  if (headers.length) {\n    for (i in headers) {\n      if (headers[i].className && headers[i].className.indexOf('side-menu-right') >= 0) {\n        headers[i].className = headers[i].className.replace(' side-menu-right', '')\n      }\n    }\n  }\n  var e = m.parentNode.getElementsByClassName('backdrop-menu')\n  if (e && e.length) {\n    e = e[0]\n    e.className = e.className.replace('show', '')\n    setTimeout(function () {\n      if (e && e.parentNode) {\n        e.parentNode.removeChild(e)\n      }\n    }, 500)\n  }\n  if (SO.code !== 1) {\n    if (m.parentNode.className.indexOf('body') >= 0) {\n      m.parentNode.className = m.parentNode.className.replace('side-menu', '')\n    } else {\n      document.getElementsByTagName('body')[0].className = document.getElementsByTagName('body')[0].className.replace('side-menu', '')\n    }\n  }\n}\n\ndocument.querySelector('body').addEventListener('touchstart', function (evt) {\n  window.menu.xDown = evt.touches[0].clientX\n  window.menu.yDown = evt.touches[0].clientY\n}, false)\n\nwindow.menu.handleTouchMove = function (evt, name) {\n  if (!window.menu.xDown || !window.menu.yDown) {\n    return\n  }\n\n  var xUp = evt.touches[0].clientX\n  var yUp = evt.touches[0].clientY\n\n  window.menu.xDiff = window.menu.xDown - xUp\n  window.menu.yDiff = window.menu.yDown - yUp\n\n  if (Math.abs(window.menu.xDiff) > Math.abs(window.menu.yDiff)) { // Most significant.\n    var menuRight = document.getElementById(name).classList.value.indexOf('menu-right') !== -1\n    if (window.menu.xDiff > 0) {\n      if (menuRight && !window.menu.openFired) {\n        window.openMenu(name)\n      } else if (!menuRight && window.menu.openFired) {\n        window.closeMenu(name)\n      }\n    } else {\n      if (!menuRight && !window.menu.openFired) {\n        window.openMenu(name)\n      } else if (menuRight && window.menu.openFired) {\n        window.closeMenu(name)\n      }\n    }\n  }\n\n  // Reset values.\n  window.menu.xDown = null\n  window.menu.yDown = null\n}\nwindow.menu.enableSwiper = function (name) {\n  document.querySelector('body').addEventListener('touchmove', function (evt) {\n    window.menu.handleTouchMove(evt, name)\n  }, false)\n}\n"
  },
  {
    "path": "menu/style.css",
    "content": "/*Define an element being a menu, being able to disconnect over the page or to push the page, depending on the operating system.*/\n.menu {\n  position: fixed;\n  top: 0;\n  left: 0;\n  width: 300px;\n  height: 100%;\n  z-index: 99999;\n  transform: translateX(-312px);\n  -webkit-transform: translateX(-312px);\n  -moz-transform: translateX(-312px);\n  -o-transform: translateX(-312px);\n  transition-duration: 280ms;\n  -webkit-transition-duration: 280ms;\n  -moz-transition-duration: 280ms;\n  -o-transition-duration: 280ms;\n  box-shadow: 0 0 10px rgba(0, 0, 0, 0.25);\n  overflow: auto;\n}\n.menu.cover {\n  width: 300px;\n}\n/*Set a menu on the right side.*/\n.menu.menu-right {\n  right: 0;\n  left: auto;\n  transform: translateX(105%);\n  -webkit-transform: translateX(105%);\n  -moz-transform: translateX(105%);\n  -o-transform: translateX(105%);\n}\n/*Set a menu is open.*/\n.menu.open {\n  transform: translateX(0px);\n  -webkit-transform: translateX(0px);\n  -moz-transform: translateX(0px);\n  -o-transform: translateX(0px);\n}\n.menu.menu-right.open {\n  margin-left: -312px;\n}\n.platform-ios .backdrop-menu {\n  opacity: 0.01;\n}\n.platform-ios .menu {\n    width: 264px;\n    box-shadow:none;\n    transition-duration: 0ms;\n    -webkit-transition-duration: 0ms;\n    -moz-transition-duration: 0ms;\n    -o-transition-duration: 0ms;\n    transform: translateX(-264px);\n    -webkit-transform: translateX(-264px);\n    -moz-transform: translateX(-264px);\n    -o-transform: translateX(-264px);\n    box-shadow: none;\n}\n.platform-ios .menu.cover {\n  width: 264px;\n}\n.platform-ios .menu.menu-right {\n  transform: translateX(105%);\n  -webkit-transform: translateX(105%);\n  -moz-transform: translateX(105%);\n  -o-transform: translateX(105%);\n  transition-duration: 0ms;\n  -webkit-transition-duration: 0ms;\n  -moz-transition-duration: 0ms;\n  -o-transition-duration: 0ms;\n}\n.platform-ios .menu.open {\n  transform: translateX(-264px);\n  -webkit-transform: translateX(-264px);\n  -moz-transform: translateX(-264px);\n  -o-transform: translateX(-264px);\n  margin-left: -1px;\n}\n.platform-ios .menu.menu-right.open {\n  margin-left: -263px;\n  transform:none;\n  -webkit-transform: none;\n  -moz-transform: none;\n  -o-transform: none;\n  box-shadow: 0 0 10px rgba(0, 0, 0, 0.25);\n}\n.platform-ios .body,\n.platform-ios body {\n  transition-duration: 0ms;\n  -webkit-transition-duration: 0ms;\n  -moz-transition-duration: 0ms;\n  -o-transition-duration: 0ms;\n}\n.platform-ios .body.side-menu,\n.platform-ios.side-menu {\n    transform: translateX(264px);\n    -webkit-transform: translateX(264px);\n    -moz-transform: translateX(264px);\n    -o-transform: translateX(264px);\n    border-left: 1px solid rgba(0, 0, 0, 0.15);\n    overflow: hidden;\n}\n.platform-ios .body.side-menu-right,\n.platform-ios.side-menu-right,\n.platform-ios .header.side-menu-right {\n    margin-left: -264px;\n}\n"
  },
  {
    "path": "mobileui-colors/component.json",
    "content": "{\n  \"name\":\"mobileui-colors\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": []\n}\n"
  },
  {
    "path": "mobileui-colors/script.js",
    "content": "(function(){\n  window.colorsMobileUI = [];\n  window.colorsMobileUI[\"red\"] = \"rgb(244, 67, 54)\";\n  window.colorsMobileUI[\"red-50\"] = \"rgb(255, 235, 238)\";\n  window.colorsMobileUI[\"red-100\"] = \"rgb(255, 205, 210)\";\n  window.colorsMobileUI[\"red-200\"] = \"rgb(239, 154, 154)\";\n  window.colorsMobileUI[\"red-300\"] = \"rgb(229, 115, 115)\";\n  window.colorsMobileUI[\"red-400\"] = \"rgb(239, 83, 80)\";\n  window.colorsMobileUI[\"red-500\"] = \"rgb(244, 67, 54)\";\n  window.colorsMobileUI[\"red-600\"] = \"rgb(229, 57, 53)\";\n  window.colorsMobileUI[\"red-700\"] = \"rgb(211, 47, 47)\";\n  window.colorsMobileUI[\"red-800\"] = \"rgb(198, 40, 40)\";\n  window.colorsMobileUI[\"red-900\"] = \"rgb(183, 28, 28)\";\n  window.colorsMobileUI[\"pink\"] = \"rgb(233, 30, 99)\";\n  window.colorsMobileUI[\"pink-50\"] = \"rgb(252, 228, 236)\";\n  window.colorsMobileUI[\"pink-100\"] = \"rgb(248, 187, 208)\";\n  window.colorsMobileUI[\"pink-200\"] = \"rgb(244, 143, 177)\";\n  window.colorsMobileUI[\"Pink-300\"] = \"rgb(240, 98, 146)\";\n  window.colorsMobileUI[\"pink-400\"] = \"rgb(236, 64, 122)\";\n  window.colorsMobileUI[\"pink-500\"] = \"rgb(233, 30, 99)\";\n  window.colorsMobileUI[\"pink-600\"] = \"rgb(216, 27, 96)\";\n  window.colorsMobileUI[\"pink-700\"] = \"rgb(194, 24, 91)\";\n  window.colorsMobileUI[\"pink-800\"] = \"rgb(173, 20, 87)\";\n  window.colorsMobileUI[\"pink-900\"] = \"rgb(136, 14, 79)\";\n  window.colorsMobileUI[\"purple\"] = \"rgb(156, 39, 176)\";\n  window.colorsMobileUI[\"purple-50\"] = \"rgb(243, 229, 245)\";\n  window.colorsMobileUI[\"purple-100\"] = \"rgb(225, 190, 231)\";\n  window.colorsMobileUI[\"purple-200\"] = \"rgb(206, 147, 216)\";\n  window.colorsMobileUI[\"Purple-300\"] = \"rgb(186, 104, 200)\";\n  window.colorsMobileUI[\"Purple-400\"] = \"rgb(171, 71, 188)\";\n  window.colorsMobileUI[\"purple-500\"] = \"rgb(156, 39, 176)\";\n  window.colorsMobileUI[\"purple-600\"] = \"rgb(142, 36, 170)\";\n  window.colorsMobileUI[\"purple-700\"] = \"rgb(123, 31, 162)\";\n  window.colorsMobileUI[\"purple-800\"] = \"rgb(106, 27, 154)\";\n  window.colorsMobileUI[\"purple-900\"] = \"rgb(74, 20, 140)\";\n  window.colorsMobileUI[\"deep-purple\"] = \"rgb(103, 58, 183)\";\n  window.colorsMobileUI[\"deep-purple-50\"] = \"rgb(237, 231, 246)\";\n  window.colorsMobileUI[\"deep-purple-100\"] = \"rgb(209, 196, 233)\";\n  window.colorsMobileUI[\"deep-purple-200\"] = \"rgb(179, 157, 219)\";\n  window.colorsMobileUI[\"deep-purple-300\"] = \"rgb(149, 117, 205)\";\n  window.colorsMobileUI[\"deep-purple-400\"] = \"rgb(126, 87, 194)\";\n  window.colorsMobileUI[\"deep-purple-500\"] = \"rgb(103, 58, 183)\";\n  window.colorsMobileUI[\"deep-purple-600\"] = \"rgb(94, 53, 177)\";\n  window.colorsMobileUI[\"deep-purple-700\"] = \"rgb(81, 45, 168)\";\n  window.colorsMobileUI[\"deep-purple-800\"] = \"rgb(69, 39, 160)\";\n  window.colorsMobileUI[\"deep-purple-900\"] = \"rgb(49, 27, 146)\";\n  window.colorsMobileUI[\"indigo\"] = \"rgb(63, 81, 181)\";\n  window.colorsMobileUI[\"indigo-50\"] = \"rgb(232, 234, 246)\";\n  window.colorsMobileUI[\"indigo-100\"] = \"rgb(197, 202, 233)\";\n  window.colorsMobileUI[\"indigo-200\"] = \"rgb(159, 168, 218)\";\n  window.colorsMobileUI[\"indigo-300\"] = \"rgb(121, 134, 203)\";\n  window.colorsMobileUI[\"indigo-400\"] = \"rgb(92, 107, 192)\";\n  window.colorsMobileUI[\"indigo-500\"] = \"rgb(63, 81, 181)\";\n  window.colorsMobileUI[\"indigo-600\"] = \"rgb(57, 73, 171)\";\n  window.colorsMobileUI[\"indigo-700\"] = \"rgb(48, 63, 159)\";\n  window.colorsMobileUI[\"indigo-800\"] = \"rgb(40, 53, 147)\";\n  window.colorsMobileUI[\"indigo-900\"] = \"rgb(26, 35, 126)\";\n  window.colorsMobileUI[\"blue\"] = \"rgb(33, 150, 243)\";\n  window.colorsMobileUI[\"blue-50\"] = \"rgb(227, 242, 253)\";\n  window.colorsMobileUI[\"blue-100\"] = \"rgb(187, 222, 251)\";\n  window.colorsMobileUI[\"blue-200\"] = \"rgb(144, 202, 249)\";\n  window.colorsMobileUI[\"blue-300\"] = \"rgb(100, 181, 246)\";\n  window.colorsMobileUI[\"blue-400\"] = \"rgb(66, 165, 245)\";\n  window.colorsMobileUI[\"blue-500\"] = \"rgb(33, 150, 243)\";\n  window.colorsMobileUI[\"blue-600\"] = \"rgb(30, 136, 229)\";\n  window.colorsMobileUI[\"blue-700\"] = \"rgb(25, 118, 210)\";\n  window.colorsMobileUI[\"blue-800\"] = \"rgb(21, 101, 192)\";\n  window.colorsMobileUI[\"blue-900\"] = \"rgb(13, 71, 161)\";\n  window.colorsMobileUI[\"light-blue\"] = \"rgb(3, 169, 244)\";\n  window.colorsMobileUI[\"light-blue-50\"] = \"rgb(225, 245, 254)\";\n  window.colorsMobileUI[\"light-blue-100\"] = \"rgb(179, 229, 252)\";\n  window.colorsMobileUI[\"light-blue-200\"] = \"rgb(129, 212, 250)\";\n  window.colorsMobileUI[\"light-blue-300\"] = \"rgb(79, 195, 247)\";\n  window.colorsMobileUI[\"light-blue-400\"] = \"rgb(41, 182, 246)\";\n  window.colorsMobileUI[\"light-blue-500\"] = \"rgb(3, 169, 244)\";\n  window.colorsMobileUI[\"light-blue-600\"] = \"rgb(3, 155, 229)\";\n  window.colorsMobileUI[\"light-blue-700\"] = \"rgb(2, 136, 209)\";\n  window.colorsMobileUI[\"light-blue-800\"] = \"rgb(2, 119, 189)\";\n  window.colorsMobileUI[\"light-blue-900\"] = \"rgb(1, 87, 155)\";\n  window.colorsMobileUI[\"cyan\"] = \"rgb(0, 188, 212)\";\n  window.colorsMobileUI[\"cyan-50\"] = \"rgb(224, 247, 250)\";\n  window.colorsMobileUI[\"cyan-100\"] = \"rgb(178, 235, 242)\";\n  window.colorsMobileUI[\"cyan-200\"] = \"rgb(128, 222, 234)\";\n  window.colorsMobileUI[\"cyan-300\"] = \"rgb(77, 208, 225)\";\n  window.colorsMobileUI[\"cyan-400\"] = \"rgb(38, 198, 218)\";\n  window.colorsMobileUI[\"cyan-500\"] = \"rgb(0, 188, 212)\";\n  window.colorsMobileUI[\"cyan-600\"] = \"rgb(0, 172, 193)\";\n  window.colorsMobileUI[\"cyan-700\"] = \"rgb(0, 151, 167)\";\n  window.colorsMobileUI[\"cyan-800\"] = \"rgb(0, 131, 143)\";\n  window.colorsMobileUI[\"cyan-900\"] = \"rgb(0, 96, 100)\";\n  window.colorsMobileUI[\"teal\"] = \"rgb(0, 150, 136)\";\n  window.colorsMobileUI[\"teal-50\"] = \"rgb(224, 242, 241)\";\n  window.colorsMobileUI[\"teal-100\"] = \"rgb(178, 223, 219)\";\n  window.colorsMobileUI[\"teal-200\"] = \"rgb(128, 203, 196)\";\n  window.colorsMobileUI[\"teal-300\"] = \"rgb(77, 182, 172)\";\n  window.colorsMobileUI[\"teal-400\"] = \"rgb(38, 166, 154)\";\n  window.colorsMobileUI[\"teal-500\"] = \"rgb(0, 150, 136)\";\n  window.colorsMobileUI[\"teal-600\"] = \"rgb(0, 137, 123)\";\n  window.colorsMobileUI[\"teal-700\"] = \"rgb(0, 121, 107)\";\n  window.colorsMobileUI[\"teal-800\"] = \"rgb(0, 105, 92)\";\n  window.colorsMobileUI[\"teal-900\"] = \"rgb(0, 77, 64)\";\n  window.colorsMobileUI[\"green\"] = \"rgb(76, 175, 80)\";\n  window.colorsMobileUI[\"green-50\"] = \"rgb(232, 245, 233)\";\n  window.colorsMobileUI[\"green-100\"] = \"rgb(200, 230, 201)\";\n  window.colorsMobileUI[\"green-200\"] = \"rgb(165, 214, 167)\";\n  window.colorsMobileUI[\"green-300\"] = \"rgb(129, 199, 132)\";\n  window.colorsMobileUI[\"green-400\"] = \"rgb(102, 187, 106)\";\n  window.colorsMobileUI[\"green-500\"] = \"rgb(76, 175, 80)\";\n  window.colorsMobileUI[\"green-600\"] = \"rgb(67, 160, 71)\";\n  window.colorsMobileUI[\"green-700\"] = \"rgb(56, 142, 60)\";\n  window.colorsMobileUI[\"green-800\"] = \"rgb(46, 125, 50)\";\n  window.colorsMobileUI[\"green-900\"] = \"rgb(27, 94, 32)\";\n  window.colorsMobileUI[\"light-green\"] = \"rgb(139, 195, 74)\";\n  window.colorsMobileUI[\"light-green-50\"] = \"rgb(241, 248, 233)\";\n  window.colorsMobileUI[\"light-green-100\"] = \"rgb(220, 237, 200)\";\n  window.colorsMobileUI[\"light-green-200\"] = \"rgb(197, 225, 165)\";\n  window.colorsMobileUI[\"light-green-300\"] = \"rgb(174, 213, 129)\";\n  window.colorsMobileUI[\"light-green-400\"] = \"rgb(156, 204, 101)\";\n  window.colorsMobileUI[\"light-green-500\"] = \"rgb(139, 195, 74)\";\n  window.colorsMobileUI[\"light-green-600\"] = \"rgb(124, 179, 66)\";\n  window.colorsMobileUI[\"light-green-700\"] = \"rgb(104, 159, 56)\";\n  window.colorsMobileUI[\"light-green-800\"] = \"rgb(85, 139, 47)\";\n  window.colorsMobileUI[\"light-green-900\"] = \"rgb(51, 105, 30)\";\n  window.colorsMobileUI[\"lime\"] = \"rgb(205, 220, 57)\";\n  window.colorsMobileUI[\"lime-50\"] = \"rgb(249, 251, 231)\";\n  window.colorsMobileUI[\"lime-100\"] = \"rgb(240, 244, 195)\";\n  window.colorsMobileUI[\"lime-200\"] = \"rgb(230, 238, 156)\";\n  window.colorsMobileUI[\"lime-300\"] = \"rgb(220, 231, 117)\";\n  window.colorsMobileUI[\"lime-400\"] = \"rgb(212, 225, 87)\";\n  window.colorsMobileUI[\"lime-500\"] = \"rgb(205, 220, 57)\";\n  window.colorsMobileUI[\"lime-600\"] = \"rgb(192, 202, 51)\";\n  window.colorsMobileUI[\"lime-700\"] = \"rgb(175, 180, 43)\";\n  window.colorsMobileUI[\"lime-800\"] = \"rgb(158, 157, 36)\";\n  window.colorsMobileUI[\"lime-900\"] = \"rgb(130, 119, 23)\";\n  window.colorsMobileUI[\"yellow\"] = \"rgb(255, 235, 59)\";\n  window.colorsMobileUI[\"yellow-50\"] = \"rgb(255, 253, 231)\";\n  window.colorsMobileUI[\"yellow-100\"] = \"rgb(255, 249, 196)\";\n  window.colorsMobileUI[\"yellow-200\"] = \"rgb(255, 245, 157)\";\n  window.colorsMobileUI[\"yellow-300\"] = \"rgb(255, 241, 118)\";\n  window.colorsMobileUI[\"yellow-400\"] = \"rgb(255, 238, 88)\";\n  window.colorsMobileUI[\"yellow-500\"] = \"rgb(255, 235, 59)\";\n  window.colorsMobileUI[\"yellow-600\"] = \"rgb(253, 216, 53)\";\n  window.colorsMobileUI[\"yellow-700\"] = \"rgb(251, 192, 45)\";\n  window.colorsMobileUI[\"yellow-800\"] = \"rgb(249, 168, 37)\";\n  window.colorsMobileUI[\"yellow-900\"] = \"rgb(245, 127, 23)\";\n  window.colorsMobileUI[\"amber\"] = \"rgb(255, 193, 7)\";\n  window.colorsMobileUI[\"amber-50\"] = \"rgb(255, 248, 225)\";\n  window.colorsMobileUI[\"amber-100\"] = \"rgb(255, 236, 179)\";\n  window.colorsMobileUI[\"amber-200\"] = \"rgb(255, 224, 130)\";\n  window.colorsMobileUI[\"amber-300\"] = \"rgb(255, 213, 79)\";\n  window.colorsMobileUI[\"amber-400\"] = \"rgb(255, 202, 40)\";\n  window.colorsMobileUI[\"amber-500\"] = \"rgb(255, 193, 7)\";\n  window.colorsMobileUI[\"amber-600\"] = \"rgb(255, 179, 0)\";\n  window.colorsMobileUI[\"amber-700\"] = \"rgb(255, 160, 0)\";\n  window.colorsMobileUI[\"amber-800\"] = \"rgb(255, 143, 0)\";\n  window.colorsMobileUI[\"amber-900\"] = \"rgb(255, 111, 0)\";\n  window.colorsMobileUI[\"orange\"] = \"rgb(255, 152, 0)\";\n  window.colorsMobileUI[\"orange-50\"] = \"rgb(255, 243, 224)\";\n  window.colorsMobileUI[\"orange-100\"] = \"rgb(255, 224, 178)\";\n  window.colorsMobileUI[\"orange-200\"] = \"rgb(255, 204, 128)\";\n  window.colorsMobileUI[\"orange-300\"] = \"rgb(255, 183, 77)\";\n  window.colorsMobileUI[\"orange-400\"] = \"rgb(255, 167, 38)\";\n  window.colorsMobileUI[\"orange-500\"] = \"rgb(255, 152, 0)\";\n  window.colorsMobileUI[\"orange-600\"] = \"rgb(251, 140, 0)\";\n  window.colorsMobileUI[\"orange-700\"] = \"rgb(245, 124, 0)\";\n  window.colorsMobileUI[\"orange-800\"] = \"rgb(239, 108, 0)\";\n  window.colorsMobileUI[\"orange-900\"] = \"rgb(230, 81, 0)\";\n  window.colorsMobileUI[\"deep-orange\"] = \"rgb(255, 87, 34)\";\n  window.colorsMobileUI[\"deep-orange-50\"] = \"rgb(251, 233, 231)\";\n  window.colorsMobileUI[\"deep-orange-100\"] = \"rgb(255, 204, 188)\";\n  window.colorsMobileUI[\"deep-orange-200\"] = \"rgb(255, 171, 145)\";\n  window.colorsMobileUI[\"deep-orange-300\"] = \"rgb(255, 138, 101)\";\n  window.colorsMobileUI[\"deep-orange-400\"] = \"rgb(255, 112, 67)\";\n  window.colorsMobileUI[\"deep-orange-500\"] = \"rgb(255, 87, 34)\";\n  window.colorsMobileUI[\"deep-orange-600\"] = \"rgb(244, 81, 30)\";\n  window.colorsMobileUI[\"deep-orange-700\"] = \"rgb(230, 74, 25)\";\n  window.colorsMobileUI[\"deep-orange-800\"] = \"rgb(216, 67, 21)\";\n  window.colorsMobileUI[\"deep-orange-900\"] = \"rgb(191, 54, 12)\";\n  window.colorsMobileUI[\"brown\"] = \"rgb(121, 85, 72)\";\n  window.colorsMobileUI[\"brown-50\"] = \"rgb(239, 235, 233)\";\n  window.colorsMobileUI[\"brown-100\"] = \"rgb(215, 204, 200)\";\n  window.colorsMobileUI[\"brown-200\"] = \"rgb(188, 170, 164)\";\n  window.colorsMobileUI[\"brown-300\"] = \"rgb(161, 136, 127)\";\n  window.colorsMobileUI[\"brown-400\"] = \"rgb(141, 110, 99)\";\n  window.colorsMobileUI[\"brown-500\"] = \"rgb(121, 85, 72)\";\n  window.colorsMobileUI[\"brown-600\"] = \"rgb(109, 76, 65)\";\n  window.colorsMobileUI[\"brown-700\"] = \"rgb(93, 64, 55)\";\n  window.colorsMobileUI[\"brown-800\"] = \"rgb(78, 52, 46)\";\n  window.colorsMobileUI[\"brown-900\"] = \"rgb(62, 39, 35)\";\n  window.colorsMobileUI[\"grey\"] = \"rgb(158, 158, 158)\";\n  window.colorsMobileUI[\"grey-50\"] = \"rgb(250, 250, 250)\";\n  window.colorsMobileUI[\"grey-100\"] = \"rgb(245, 245, 245)\";\n  window.colorsMobileUI[\"grey-200\"] = \"rgb(238, 238, 238)\";\n  window.colorsMobileUI[\"grey-300\"] = \"rgb(224, 224, 224)\";\n  window.colorsMobileUI[\"grey-400\"] = \"rgb(189, 189, 189)\";\n  window.colorsMobileUI[\"grey-500\"] = \"rgb(158, 158, 158)\";\n  window.colorsMobileUI[\"grey-600\"] = \"rgb(117, 117, 117)\";\n  window.colorsMobileUI[\"grey-700\"] = \"rgb(97, 97, 97)\";\n  window.colorsMobileUI[\"grey-800\"] = \"rgb(66, 66, 66)\";\n  window.colorsMobileUI[\"grey-900\"] = \"rgb(33, 33, 33)\";\n  window.colorsMobileUI[\"blue-grey\"] = \"rgb(96, 125, 139)\";\n  window.colorsMobileUI[\"blue-grey-50\"] = \"rgb(236, 239, 241)\";\n  window.colorsMobileUI[\"blue-grey-100\"] = \"rgb(207, 216, 220)\";\n  window.colorsMobileUI[\"blue-grey-200\"] = \"rgb(176, 190, 197)\";\n  window.colorsMobileUI[\"blue-grey-300\"] = \"rgb(144, 164, 174)\";\n  window.colorsMobileUI[\"blue-grey-400\"] = \"rgb(120, 144, 156)\";\n  window.colorsMobileUI[\"blue-grey-500\"] = \"rgb(96, 125, 139)\";\n  window.colorsMobileUI[\"blue-grey-600\"] = \"rgb(84, 110, 122)\";\n  window.colorsMobileUI[\"blue-grey-700\"] = \"rgb(69, 90, 100)\";\n  window.colorsMobileUI[\"blue-grey-800\"] = \"rgb(55, 71, 79)\";\n  window.colorsMobileUI[\"blue-grey-900\"] = \"rgb(38, 50, 56)\";\n  window.colorsMobileUI[\"black\"] = \"rgb(0, 0, 0)\";\n  window.colorsMobileUI[\"white\"] = \"rgb(255, 255, 255)\";\n  window.colorsMobileUI[\"black-opacity-90\"] = \"rgba(0, 0, 0, 0.9)\";\n  window.colorsMobileUI[\"white-opacity-90\"] = \"rgba(255, 255, 255, 0.9)\";\n  window.colorsMobileUI[\"black-opacity-70\"] = \"rgba(0, 0, 0, 0.8)\";\n  window.colorsMobileUI[\"white-opacity-70\"] = \"rgba(255, 255, 255, 0.7)\";\n  window.colorsMobileUI[\"black-opacity-50\"] = \"rgba(0, 0, 0, 0.7)\";\n  window.colorsMobileUI[\"white-opacity-50\"] = \"rgba(255, 255, 255, 0.5)\";\n  window.colorsMobileUI[\"black-opacity-30\"] = \"rgba(0, 0, 0, 0.6)\";\n  window.colorsMobileUI[\"white-opacity-30\"] = \"rgba(255, 255, 255, 0.3)\";\n  window.colorsMobileUI[\"black-opacity-10\"] = \"rgba(0, 0, 0, 0.5)\";\n  window.colorsMobileUI[\"white-opacity-10\"] = \"rgba(255, 255, 255, 0.1)\";\n})();\n"
  },
  {
    "path": "mobileui-colors/style.css",
    "content": ""
  },
  {
    "path": "mobileuijs/component.json",
    "content": "{\n  \"name\":\"mobileuijs\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": []\n}\n"
  },
  {
    "path": "mobileuijs/index.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title></title>\n    <link href=\"https://fonts.googleapis.com/css?family=Chewy|Dosis|Raleway:400,700|Roboto:300,400,900,\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n    <link rel=\"stylesheet\" href=\"../base/reset.css\">\n    <link rel=\"stylesheet\" href=\"../base/mobileui.css\">\n    <link rel=\"stylesheet\" href=\"../base/colors.css\">\n    <link rel=\"stylesheet\" href=\"../base/icons.css\">\n    <link rel=\"stylesheet\" href=\"../header/style.css\">\n    <link rel=\"stylesheet\" href=\"../button/style.css\">\n    <link rel=\"stylesheet\" href=\"../mobileuijs/style.css\">\n    <link rel=\"stylesheet\" href=\"../input/style.css\">\n    <link rel=\"stylesheet\" href=\"../list/style.css\">\n    <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n    <style>\n      .content-land { margin-left:50px}\n    </style>\n    <script type=\"text/javascript\" src=\"../base/base.js\"></script>\n    <script type=\"text/javascript\" src=\"../input/script.js\"></script>\n  </head>\n  <body class=\"content-land\">\n    <!-- BEGIN -->\n    <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">MobileUI.JS</h2>\n    <p>\n      This component is a simple library for manipulating data, states of elements and Ajax request in JavaScript.\n    </p>\n    <p>\n      To use this component you need install with the command:\n    </p>\n    <pre>mobileui install mobileuijs</pre>\n    <p>\n      The most important functionality is the observation in objects and arrays.\n      For use you need add attribute <code>data</code> in your HTML element with the name of a <code>object</code> or <code>array</code>.\n      This causes an element to be changed if the object or array is modified and you can display using a escape expression <code>${}</code>\n    </p>\n    <p>\n      MobileUI.js embed the lib <a href=\"http://visionmedia.github.io/superagent/\" target=\"_blank\">SuperAgent</a> for call ajax request, because it is light-weight progressive\n      ajax API crafted for flexibility, readability, and a low learning curve.\n    </p>\n    <p>\n      In this example a have a <code>object</code> with attributes of user:\n    </p>\n<textarea class=\"bind-just-code\" mode=\"text/javascript\">\nvar user = {\n    name: 'Fábio Rogério',\n    email: 'fabio@rogerio.com'\n}</textarea>\n    <p>\n      And in my HTML I have an element that uses this created object as data:\n    </p>\n<textarea class=\"bind-just-code\" mode=\"text/html\">\n<p data=\"user\">\n  Your name is ${name} and your email is ${email}\n</p></textarea>\n    <p>\n      In this example a have a <code>array</code> with objects of user:\n    </p>\n<textarea class=\"bind-just-code\" mode=\"text/javascript\">\nvar users = [\n  {\n    name: 'Fábio Rogério',\n    email: 'fabio@rogerio.com'\n  },\n  {\n    name: 'Steve Jobs',\n    email: 'steve@jobs.com'\n  }\n]</textarea>\n    <p>\n      And in my HTML I have an element that uses this created array as data:\n    </p>\n<textarea class=\"bind-just-code\" mode=\"text/html\">\n<ul>\n  <li data=\"users\">\n    Name: ${name}, Email: ${email}\n  </li>\n</ul></textarea>\n    <p>\n      If you add another object in array, the HTML elements will update. Check this feature in action:\n    </p>\n<textarea class=\"bind-code\" mode=\"text/html\" header-absolute=\"true\" replace=\"body,div|grey-200,grey-200 body\" height-preview=\"600px\" border=\"true\" exec-mobileui-bind=\"true\">\n<body class=\"has-header grey-200\">\n  <div class=\"header red\">\n    <h1>Example MobileUI.js</h1>\n  </div>\n  <div class=\"list white\" id=\"formCadaster\">\n    <div class=\"item\">\n      <input type=\"text\" id=\"name\" placeholder=\"Name\">\n    </div>\n    <div class=\"item\">\n      <input type=\"email\" id=\"email\" placeholder=\"Email\">\n    </div>\n    <div class=\"item\">\n      <button class=\"blue full\" onclick=\"addUser()\">SAVE USER</button>\n    </div>\n    <div class=\"item text-red hidden\" id=\"messageValidation\">\n      <p>\n        <i class=\"icon ion-alert-circled\"></i> Enter the name and email of user.\n      </p>\n    </div>\n  </div>\n  <div class=\"list\">\n    <div class=\"item\" data=\"users\">\n      <h2>${name}</h2>\n      <p>${email}</p>\n      <div class=\"right\">\n        <button class=\"icon ion-trash-b red\" onclick=\"deleteUser($$$index)\"></button>\n        <button class=\"icon ion-edit blue\" onclick=\"editUser($$$index)\"></button>\n      </div>\n    </div>\n  </div>\n  <script type=\"text/javascript\">\n    var users = [\n      {\n        name: 'Fábio Rogério',\n        email: 'fabio@rogerio.com'\n      },\n      {\n        name: 'Steve Jobs',\n        email: 'steve@jobs.com'\n      }\n    ];\n\n    var indexEdit=-1; //Just example in memory\n\n    function addUser(){\n      var obj = MobileUI.objectByForm('formCadaster');\n      MobileUI.hide('messageValidation');\n      if(!obj.name || !obj.email) {\n        MobileUI.show('messageValidation');\n        return false;\n      }\n      if(indexEdit>=0){\n        users[indexEdit] = obj;\n        indexEdit=-1;\n      } else {\n        users.push(obj);\n      }\n      MobileUI.clearForm('formCadaster');\n    }\n\n    function editUser(index){\n      indexEdit = index;\n      MobileUI.formByObject('formCadaster', users[index]);\n    }\n\n    function deleteUser(index){\n      delete users[index];\n    }\n  </script>\n</body></textarea>\n    <p>The features of this component are:</p>\n    <div class=\"content-table\">\n      <table class=\"tableDoc\">\n        <tbody>\n          <tr>\n            <th>Function</th>\n            <th>Description</th>\n          </tr>\n          <tr>\n            <td><code>MobileUI.objectByForm('idElement')</code></td>\n            <td>Returns an object with the values of the inputs found within the given element.</td>\n          </tr>\n          <tr>\n            <td><code>MobileUI.formByObject('idElement', object)</code></td>\n            <td>Set the input values from an informed object.</td>\n          </tr>\n          <tr>\n            <td><code>MobileUI.clearForm('idElement')</code></td>\n            <td>Clear and reset inputs within the entered element.</td>\n          </tr>\n          <tr>\n            <td><code>MobileUI.ajax</code></td>\n            <td>Ajax request flexibility, readability, and a low learning curve using <a href=\"http://visionmedia.github.io/superagent/\" target=\"_blank\">SuperAgent</a>.</td>\n          </tr>\n          <tr>\n            <td><code>MobileUI.show('idElement')</code></td>\n            <td>Display an element that is hidden.</td>\n          </tr>\n          <tr>\n            <td><code>MobileUI.hide('idElement')</code></td>\n            <td>Hidden an element.</td>\n          </tr>\n          <tr>\n            <td><code>MobileUI.showHide('idElement')</code></td>\n            <td>Display an element that is hidden or hides an element if it is visible.</td>\n          </tr>\n          <tr>\n            <td><code>MobileUI.focus('idElement')</code></td>\n            <td>Focus on an element, if input to keyboard is displayed.</td>\n          </tr>\n          <tr>\n            <td><code>MobileUI.disable('idElement')</code></td>\n            <td>Disable an element and your children's.</td>\n          </tr>\n          <tr>\n            <td><code>MobileUI.enable('idElement')</code></td>\n            <td>Enable an element and your children's.</td>\n          </tr>\n          <tr>\n            <td><code>document.addEventListener('dataUpdated')</code></td>\n            <td>\n              Fire event when data is updated, you can check whats is data in the event.detail, ex:<br>\n              <code>\n                document.addEventListener('dataUpdated', function(event){\n                  //event.detail.dataKey\n                  //event.detail.dataValue\n                })\n              </code>\n            </td>\n          </tr>\n          <tr>\n            <td><code>MobileUI.formatMoney(number)</code></td>\n            <td>\n              Returns a string formatted in money, you can pass the number of decimal places, the decimal separator, and the thousands separator.\n              <br>\n              Example: <br><br>\n              <code>MobileUI.formatMoney(256)</code> <br>\n              <code>MobileUI.formatMoney(1256, 2, ',','.')</code>\n            </td>\n          </tr>\n          <tr>\n            <td><code>MobileUI.myFunction = function(params){}</code></td>\n            <td>\n              You can create a custom function for use in data list HTML validation, example <code>$$$myFunction{par1}</code>\n            </td>\n          </tr>\n        </tbody>\n      </table>\n    </div>\n    <p>\n      See this example using ajax request.\n    </p>\n<textarea class=\"bind-code\" mode=\"text/html\" header-absolute=\"true\" replace=\"body,div|grey-200,grey-200 body\" height-preview=\"600px\" border=\"true\" exec-mobileui-bind=\"true\">\n<body class=\"padding grey-200\">\n  <div class=\"list white\" id=\"formUserGitHub\">\n    <div class=\"item icon ion-at\">\n      <input type=\"text\" id=\"github_username\" placeholder=\"Enter GitHub username\">\n    </div>\n    <div class=\"item\">\n      <button class=\"blue full\" onclick=\"getProfile()\">GET PROFILE</button>\n    </div>\n  </div>\n  <p class=\"text-red\" data=\"infos\">${message}</p>\n  <div class=\"hidden\" id=\"listProfileGitHub\">\n    <div class=\"list\" data=\"userGitHub\">\n      <div class=\"item\">\n        <div class=\"left\">\n          <img class=\"avatar circle\" src=\"${avatar_url}\">\n        </div>\n        <h2>${name}</h2>\n        <p>@${login}</p>\n      </div>\n      <div class=\"item\">\n        <p>${bio}</p>\n      </div>\n    </div>\n  </div>\n  <div class=\"hidden\" id=\"listRepositoriesGitHub\">\n    <div class=\"list\">\n      <div class=\"item grey-900\">\n        REPOSITORIES\n        <span class=\"black radius padding right\" data=\"infos\">\n          ${totalRepositories}\n        </span>\n      </div>\n      <a href=\"${html_url}\" target=\"_blank\" class=\"item\" data=\"repositoriesGitHub\">\n        <h2 class=\"text-strong\">${name}</h2>\n        <p>${html_url}</p>\n      </a>\n    </div>\n  </div>\n  <script type=\"text/javascript\">\n    var userGitHub = {};\n    var repositoriesGitHub = [];\n    var infos = {};\n\n    function getProfile(){\n      var obj = MobileUI.objectByForm('formUserGitHub');\n      MobileUI.disable('formUserGitHub');\n      MobileUI.ajax.get('https://api.github.com/users/' + obj.github_username).end(resultAjaxProfile)\n    }\n\n    function getRepositories(repoUrl){\n      MobileUI.ajax.get(repoUrl).end(resultAjaxRepositories)\n    }\n\n    function resultAjaxProfile(err, res){\n      MobileUI.enable('formUserGitHub');\n      if(err) {\n        infos.message = \"Sorry, get profile not work now :(\";\n      } else {\n        userGitHub = JSON.parse(res.text);\n        MobileUI.show('listProfileGitHub');\n        if(userGitHub.repos_url){\n          getRepositories(userGitHub.repos_url);\n        }\n      }\n    }\n\n    function resultAjaxRepositories(err, res){\n      if(!err) {\n        repositoriesGitHub = JSON.parse(res.text);\n        MobileUI.show('listRepositoriesGitHub');\n        infos.totalRepositories = repositoriesGitHub.length;\n      }\n    }\n\n\n  </script>\n</body></textarea>\n    <!-- DONE -->\n    <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n    <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n    <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n    <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n    <script type=\"text/javascript\" src=\"script.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "mobileuijs/script.js",
    "content": "!function(a){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=a();else if(\"function\"==typeof define&&define.amd)define([],a);else{var b;b=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this,b.superagent=a()}}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i=\"function\"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error(\"Cannot find module '\"+g+\"'\");throw j.code=\"MODULE_NOT_FOUND\",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c||a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f=\"function\"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){function e(a){return\"[object Function]\"===(d(a)?Object.prototype.toString.call(a):\"\")}var d=a(\"./is-object\");b.exports=e},{\"./is-object\":2}],2:[function(a,b,c){function d(a){return null!==a&&\"object\"==typeof a}b.exports=d},{}],3:[function(a,b,c){function e(a){if(a)return f(a)}function f(a){for(var b in e.prototype)a[b]=e.prototype[b];return a}var d=a(\"./is-object\");b.exports=e,e.prototype.clearTimeout=function(){return clearTimeout(this._timer),clearTimeout(this._responseTimeoutTimer),delete this._timer,delete this._responseTimeoutTimer,this},e.prototype.parse=function(b){return this._parser=b,this},e.prototype.responseType=function(a){return this._responseType=a,this},e.prototype.serialize=function(b){return this._serializer=b,this},e.prototype.timeout=function(b){if(!b||\"object\"!=typeof b)return this._timeout=b,this._responseTimeout=0,this;for(var c in b)switch(c){case\"deadline\":this._timeout=b.deadline;break;case\"response\":this._responseTimeout=b.response;break;default:console.warn(\"Unknown timeout option\",c)}return this},e.prototype.retry=function(b){return 0!==arguments.length&&!0!==b||(b=1),b<=0&&(b=0),this._maxRetries=b,this._retries=0,this},e.prototype._retry=function(){return this.clearTimeout(),this.req&&(this.req=null,this.req=this.request()),this._aborted=!1,this.timedout=!1,this._end()},e.prototype.then=function(b,c){if(!this._fullfilledPromise){var d=this;this._endCalled&&console.warn(\"Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises\"),this._fullfilledPromise=new Promise(function(a,b){d.end(function(c,d){c?b(c):a(d)})})}return this._fullfilledPromise.then(b,c)},e.prototype.catch=function(a){return this.then(void 0,a)},e.prototype.use=function(b){return b(this),this},e.prototype.ok=function(a){if(\"function\"!=typeof a)throw Error(\"Callback required\");return this._okCallback=a,this},e.prototype._isResponseOK=function(a){return!!a&&(this._okCallback?this._okCallback(a):a.status>=200&&a.status<300)},e.prototype.get=function(a){return this._header[a.toLowerCase()]},e.prototype.getHeader=e.prototype.get,e.prototype.set=function(a,b){if(d(a)){for(var c in a)this.set(c,a[c]);return this}return this._header[a.toLowerCase()]=b,this.header[a]=b,this},e.prototype.unset=function(a){return delete this._header[a.toLowerCase()],delete this.header[a],this},e.prototype.field=function(a,b){if(null===a||void 0===a)throw new Error(\".field(name, val) name can not be empty\");if(this._data&&console.error(\".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()\"),d(a)){for(var c in a)this.field(c,a[c]);return this}if(Array.isArray(b)){for(var e in b)this.field(a,b[e]);return this}if(null===b||void 0===b)throw new Error(\".field(name, val) val can not be empty\");return\"boolean\"==typeof b&&(b=\"\"+b),this._getFormData().append(a,b),this},e.prototype.abort=function(){return this._aborted?this:(this._aborted=!0,this.xhr&&this.xhr.abort(),this.req&&this.req.abort(),this.clearTimeout(),this.emit(\"abort\"),this)},e.prototype.withCredentials=function(a){return void 0==a&&(a=!0),this._withCredentials=a,this},e.prototype.redirects=function(a){return this._maxRedirects=a,this},e.prototype.toJSON=function(){return{method:this.method,url:this.url,data:this._data,headers:this._header}},e.prototype.send=function(a){var b=d(a),c=this._header[\"content-type\"];if(this._formData&&console.error(\".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()\"),b&&!this._data)Array.isArray(a)?this._data=[]:this._isHost(a)||(this._data={});else if(a&&this._data&&this._isHost(this._data))throw Error(\"Can't merge these send calls\");if(b&&d(this._data))for(var e in a)this._data[e]=a[e];else\"string\"==typeof a?(c||this.type(\"form\"),c=this._header[\"content-type\"],this._data=\"application/x-www-form-urlencoded\"==c?this._data?this._data+\"&\"+a:a:(this._data||\"\")+a):this._data=a;return!b||this._isHost(a)?this:(c||this.type(\"json\"),this)},e.prototype.sortQuery=function(a){return this._sort=void 0===a||a,this},e.prototype._timeoutError=function(a,b,c){if(!this._aborted){var d=new Error(a+b+\"ms exceeded\");d.timeout=b,d.code=\"ECONNABORTED\",d.errno=c,this.timedout=!0,this.abort(),this.callback(d)}},e.prototype._setTimeouts=function(){var a=this;this._timeout&&!this._timer&&(this._timer=setTimeout(function(){a._timeoutError(\"Timeout of \",a._timeout,\"ETIME\")},this._timeout)),this._responseTimeout&&!this._responseTimeoutTimer&&(this._responseTimeoutTimer=setTimeout(function(){a._timeoutError(\"Response timeout of \",a._responseTimeout,\"ETIMEDOUT\")},this._responseTimeout))}},{\"./is-object\":2}],4:[function(a,b,c){function e(a){if(a)return f(a)}function f(a){for(var b in e.prototype)a[b]=e.prototype[b];return a}var d=a(\"./utils\");b.exports=e,e.prototype.get=function(a){return this.header[a.toLowerCase()]},e.prototype._setHeaderProperties=function(a){var b=a[\"content-type\"]||\"\";this.type=d.type(b);var c=d.params(b);for(var e in c)this[e]=c[e];this.links={};try{a.link&&(this.links=d.parseLinks(a.link))}catch(a){}},e.prototype._setStatusProperties=function(a){var b=a/100|0;this.status=this.statusCode=a,this.statusType=b,this.info=1==b,this.ok=2==b,this.redirect=3==b,this.clientError=4==b,this.serverError=5==b,this.error=(4==b||5==b)&&this.toError(),this.accepted=202==a,this.noContent=204==a,this.badRequest=400==a,this.unauthorized=401==a,this.notAcceptable=406==a,this.forbidden=403==a,this.notFound=404==a}},{\"./utils\":6}],5:[function(a,b,c){var d=[\"ECONNRESET\",\"ETIMEDOUT\",\"EADDRINFO\",\"ESOCKETTIMEDOUT\"];b.exports=function(b,c){return!!(b&&b.code&&~d.indexOf(b.code))||(!!(c&&c.status&&c.status>=500)||(!!(b&&\"timeout\"in b&&\"ECONNABORTED\"==b.code)||!!(b&&\"crossDomain\"in b)))}},{}],6:[function(a,b,c){c.type=function(a){return a.split(/ *; */).shift()},c.params=function(a){return a.split(/ *; */).reduce(function(a,b){var c=b.split(/ *= */),d=c.shift(),e=c.shift();return d&&e&&(a[d]=e),a},{})},c.parseLinks=function(a){return a.split(/ *, */).reduce(function(a,b){var c=b.split(/ *; */),d=c[0].slice(1,-1);return a[c[1].split(/ *= */)[1].slice(1,-1)]=d,a},{})},c.cleanHeader=function(a,b){return delete a[\"content-type\"],delete a[\"content-length\"],delete a[\"transfer-encoding\"],delete a.host,b&&delete a.cookie,a}},{}],7:[function(a,b,c){function d(a){if(a)return e(a)}function e(a){for(var b in d.prototype)a[b]=d.prototype[b];return a}void 0!==b&&(b.exports=d),d.prototype.on=d.prototype.addEventListener=function(a,b){return this._callbacks=this._callbacks||{},(this._callbacks[\"$\"+a]=this._callbacks[\"$\"+a]||[]).push(b),this},d.prototype.once=function(a,b){function c(){this.off(a,c),b.apply(this,arguments)}return c.fn=b,this.on(a,c),this},d.prototype.off=d.prototype.removeListener=d.prototype.removeAllListeners=d.prototype.removeEventListener=function(a,b){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var c=this._callbacks[\"$\"+a];if(!c)return this;if(1==arguments.length)return delete this._callbacks[\"$\"+a],this;for(var d,e=0;e<c.length;e++)if((d=c[e])===b||d.fn===b){c.splice(e,1);break}return this},d.prototype.emit=function(a){this._callbacks=this._callbacks||{};var b=[].slice.call(arguments,1),c=this._callbacks[\"$\"+a];if(c){c=c.slice(0);for(var d=0,e=c.length;d<e;++d)c[d].apply(this,b)}return this},d.prototype.listeners=function(a){return this._callbacks=this._callbacks||{},this._callbacks[\"$\"+a]||[]},d.prototype.hasListeners=function(a){return!!this.listeners(a).length}},{}],8:[function(a,b,c){function k(){}function n(a){if(!g(a))return a;var b=[];for(var c in a)o(b,c,a[c]);return b.join(\"&\")}function o(a,b,c){if(null!=c)if(Array.isArray(c))c.forEach(function(c){o(a,b,c)});else if(g(c))for(var d in c)o(a,b+\"[\"+d+\"]\",c[d]);else a.push(encodeURIComponent(b)+\"=\"+encodeURIComponent(c));else null===c&&a.push(encodeURIComponent(b))}function p(a){for(var d,e,b={},c=a.split(\"&\"),f=0,g=c.length;f<g;++f)d=c[f],e=d.indexOf(\"=\"),-1==e?b[decodeURIComponent(d)]=\"\":b[decodeURIComponent(d.slice(0,e))]=decodeURIComponent(d.slice(e+1));return b}function q(a){var d,e,f,g,b=a.split(/\\r?\\n/),c={};b.pop();for(var h=0,i=b.length;h<i;++h)e=b[h],d=e.indexOf(\":\"),f=e.slice(0,d).toLowerCase(),g=m(e.slice(d+1)),c[f]=g;return c}function r(a){return/[\\/+]json\\b/.test(a)}function s(a){this.req=a,this.xhr=this.req.xhr,this.text=\"HEAD\"!=this.req.method&&(\"\"===this.xhr.responseType||\"text\"===this.xhr.responseType)||void 0===this.xhr.responseType?this.xhr.responseText:null,this.statusText=this.req.xhr.statusText;var b=this.xhr.status;1223===b&&(b=204),this._setStatusProperties(b),this.header=this.headers=q(this.xhr.getAllResponseHeaders()),this.header[\"content-type\"]=this.xhr.getResponseHeader(\"content-type\"),this._setHeaderProperties(this.header),null===this.text&&a._responseType?this.body=this.xhr.response:this.body=\"HEAD\"!=this.req.method?this._parseBody(this.text?this.text:this.xhr.response):null}function t(a,b){var c=this;this._query=this._query||[],this.method=a,this.url=b,this.header={},this._header={},this.on(\"end\",function(){var a=null,b=null;try{b=new s(c)}catch(b){return a=new Error(\"Parser is unable to parse the response\"),a.parse=!0,a.original=b,c.xhr?(a.rawResponse=void 0===c.xhr.responseType?c.xhr.responseText:c.xhr.response,a.status=c.xhr.status?c.xhr.status:null,a.statusCode=a.status):(a.rawResponse=null,a.status=null),c.callback(a)}c.emit(\"response\",b);var d;try{c._isResponseOK(b)||(d=new Error(b.statusText||\"Unsuccessful HTTP response\"),d.original=a,d.response=b,d.status=b.status)}catch(a){d=a}d?c.callback(d,b):c.callback(null,b)})}function u(a,b,c){var d=l(\"DELETE\",a);return\"function\"==typeof b&&(c=b,b=null),b&&d.send(b),c&&d.end(c),d}var d;\"undefined\"!=typeof window?d=window:\"undefined\"!=typeof self?d=self:(console.warn(\"Using browser-only version of superagent in non-browser environment\"),d=this);var e=a(\"component-emitter\"),f=a(\"./request-base\"),g=a(\"./is-object\"),h=a(\"./is-function\"),i=a(\"./response-base\"),j=a(\"./should-retry\"),l=c=b.exports=function(a,b){return\"function\"==typeof b?new c.Request(\"GET\",a).end(b):1==arguments.length?new c.Request(\"GET\",a):new c.Request(a,b)};c.Request=t,l.getXHR=function(){if(!(!d.XMLHttpRequest||d.location&&\"file:\"==d.location.protocol&&d.ActiveXObject))return new XMLHttpRequest;try{return new ActiveXObject(\"Microsoft.XMLHTTP\")}catch(a){}try{return new ActiveXObject(\"Msxml2.XMLHTTP.6.0\")}catch(a){}try{return new ActiveXObject(\"Msxml2.XMLHTTP.3.0\")}catch(a){}try{return new ActiveXObject(\"Msxml2.XMLHTTP\")}catch(a){}throw Error(\"Browser-only verison of superagent could not find XHR\")};var m=\"\".trim?function(a){return a.trim()}:function(a){return a.replace(/(^\\s*|\\s*$)/g,\"\")};l.serializeObject=n,l.parseString=p,l.types={html:\"text/html\",json:\"application/json\",xml:\"application/xml\",urlencoded:\"application/x-www-form-urlencoded\",form:\"application/x-www-form-urlencoded\",\"form-data\":\"application/x-www-form-urlencoded\"},l.serialize={\"application/x-www-form-urlencoded\":n,\"application/json\":JSON.stringify},l.parse={\"application/x-www-form-urlencoded\":p,\"application/json\":JSON.parse},i(s.prototype),s.prototype._parseBody=function(a){var b=l.parse[this.type];return this.req._parser?this.req._parser(this,a):(!b&&r(this.type)&&(b=l.parse[\"application/json\"]),b&&a&&(a.length||a instanceof Object)?b(a):null)},s.prototype.toError=function(){var a=this.req,b=a.method,c=a.url,d=\"cannot \"+b+\" \"+c+\" (\"+this.status+\")\",e=new Error(d);return e.status=this.status,e.method=b,e.url=c,e},l.Response=s,e(t.prototype),f(t.prototype),t.prototype.type=function(a){return this.set(\"Content-Type\",l.types[a]||a),this},t.prototype.accept=function(a){return this.set(\"Accept\",l.types[a]||a),this},t.prototype.auth=function(a,b,c){switch(\"object\"==typeof b&&null!==b&&(c=b),c||(c={type:\"function\"==typeof btoa?\"basic\":\"auto\"}),c.type){case\"basic\":this.set(\"Authorization\",\"Basic \"+btoa(a+\":\"+b));break;case\"auto\":this.username=a,this.password=b;break;case\"bearer\":this.set(\"Authorization\",\"Bearer \"+a)}return this},t.prototype.query=function(a){return\"string\"!=typeof a&&(a=n(a)),a&&this._query.push(a),this},t.prototype.attach=function(a,b,c){if(b){if(this._data)throw Error(\"superagent can't mix .send() and .attach()\");this._getFormData().append(a,b,c||b.name)}return this},t.prototype._getFormData=function(){return this._formData||(this._formData=new d.FormData),this._formData},t.prototype.callback=function(a,b){if(this._maxRetries&&this._retries++<this._maxRetries&&j(a,b))return this._retry();var c=this._callback;this.clearTimeout(),a&&(this._maxRetries&&(a.retries=this._retries-1),this.emit(\"error\",a)),c(a,b)},t.prototype.crossDomainError=function(){var a=new Error(\"Request has been terminated\\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.\");a.crossDomain=!0,a.status=this.status,a.method=this.method,a.url=this.url,this.callback(a)},t.prototype.buffer=t.prototype.ca=t.prototype.agent=function(){return console.warn(\"This is not supported in browser version of superagent\"),this},t.prototype.pipe=t.prototype.write=function(){throw Error(\"Streaming is not supported in browser version of superagent\")},t.prototype._appendQueryString=function(){var a=this._query.join(\"&\");if(a&&(this.url+=(this.url.indexOf(\"?\")>=0?\"&\":\"?\")+a),this._sort){var b=this.url.indexOf(\"?\");if(b>=0){var c=this.url.substring(b+1).split(\"&\");h(this._sort)?c.sort(this._sort):c.sort(),this.url=this.url.substring(0,b)+\"?\"+c.join(\"&\")}}},t.prototype._isHost=function(b){return b&&\"object\"==typeof b&&!Array.isArray(b)&&\"[object Object]\"!==Object.prototype.toString.call(b)},t.prototype.end=function(a){return this._endCalled&&console.warn(\"Warning: .end() was called twice. This is not supported in superagent\"),this._endCalled=!0,this._callback=a||k,this._appendQueryString(),this._end()},t.prototype._end=function(){var a=this,b=this.xhr=l.getXHR(),c=this._formData||this._data;this._setTimeouts(),b.onreadystatechange=function(){var c=b.readyState;if(c>=2&&a._responseTimeoutTimer&&clearTimeout(a._responseTimeoutTimer),4==c){var d;try{d=b.status}catch(a){d=0}if(!d){if(a.timedout||a._aborted)return;return a.crossDomainError()}a.emit(\"end\")}};var d=function(b,c){c.total>0&&(c.percent=c.loaded/c.total*100),c.direction=b,a.emit(\"progress\",c)};if(this.hasListeners(\"progress\"))try{b.onprogress=d.bind(null,\"download\"),b.upload&&(b.upload.onprogress=d.bind(null,\"upload\"))}catch(a){}try{this.username&&this.password?b.open(this.method,this.url,!0,this.username,this.password):b.open(this.method,this.url,!0)}catch(a){return this.callback(a)}if(this._withCredentials&&(b.withCredentials=!0),!this._formData&&\"GET\"!=this.method&&\"HEAD\"!=this.method&&\"string\"!=typeof c&&!this._isHost(c)){var e=this._header[\"content-type\"],f=this._serializer||l.serialize[e?e.split(\";\")[0]:\"\"];!f&&r(e)&&(f=l.serialize[\"application/json\"]),f&&(c=f(c))}for(var g in this.header)null!=this.header[g]&&this.header.hasOwnProperty(g)&&b.setRequestHeader(g,this.header[g]);return this._responseType&&(b.responseType=this._responseType),this.emit(\"request\",this),b.send(void 0!==c?c:null),this},l.get=function(a,b,c){var d=l(\"GET\",a);return\"function\"==typeof b&&(c=b,b=null),b&&d.query(b),c&&d.end(c),d},l.head=function(a,b,c){var d=l(\"HEAD\",a);return\"function\"==typeof b&&(c=b,b=null),b&&d.send(b),c&&d.end(c),d},l.options=function(a,b,c){var d=l(\"OPTIONS\",a);return\"function\"==typeof b&&(c=b,b=null),b&&d.send(b),c&&d.end(c),d},l.del=u,l.delete=u,l.patch=function(a,b,c){var d=l(\"PATCH\",a);return\"function\"==typeof b&&(c=b,b=null),b&&d.send(b),c&&d.end(c),d},l.post=function(a,b,c){var d=l(\"POST\",a);return\"function\"==typeof b&&(c=b,b=null),b&&d.send(b),c&&d.end(c),d},l.put=function(a,b,c){var d=l(\"PUT\",a);return\"function\"==typeof b&&(c=b,b=null),b&&d.send(b),c&&d.end(c),d}},{\"./is-function\":1,\"./is-object\":2,\"./request-base\":3,\"./response-base\":4,\"./should-retry\":5,\"component-emitter\":7}]},{},[8])(8)});\n\n\n(function() {\n  var observerWatchers = [];\n  var tokenObserver = 0;\n  var dataBind = function(){\n    var elms = document.querySelectorAll('[data]');\n    for (var i = 0; i < elms.length; i++) {\n      if(elms[i].getAttribute('data') && !elms[i].getAttribute('data-binded')){\n        var data = elms[i].getAttribute('data');\n        data = fetchFromObject(window, data);\n        if(data){\n          writeElement(elms[i], data);\n          elms[i].setAttribute('data-binded','mobileui');\n          dataObserver(elms[i].getAttribute('data'), tokenObserver++);\n        } else {\n        }\n      }\n    }\n    eventLoopBind();\n  }\n  eventLoopBind = function(){\n    setTimeout(function(){\n      dataBind();\n    },100);\n  }\n  reDataBind = function(observerWatcher){\n    //TODO: Improve logic for performance\n    var data = fetchFromObject(window, observerWatcher.dataKey);\n    var elms = document.querySelectorAll('[data-binded]');\n    for (var i = 0; i < elms.length; i++) {\n      if(elms[i].getAttribute('data-binded') === observerWatcher.dataKey){\n        elms[i].parentNode.removeChild(elms[i])\n      }\n    }\n    elms = document.querySelectorAll('[data][data-binded]');\n    for (var i = 0; i < elms.length; i++) {\n      if(elms[i].getAttribute('data') === observerWatcher.dataKey){\n          writeElement(elms[i], data);\n      }\n    }\n    observerWatcher.dataValue = copyObj(data);\n  }\n  writeElement = function(elm, data){\n    var bindWriteElement = function(dataObj, index){\n      var html = elm.outerHTML;\n      var exp = /\\${/g;\n      while (match = exp.exec(html)) {\n        var prop = html.slice(match.index+2, html.length).split('}')[0];\n        var value = fetchFromObject(dataObj,prop);\n        html = html.replace('${'+prop+'}', value);\n      }\n      if(index) {\n        html = html.replace(new RegExp('\\\\$\\\\$index', 'g'), index);\n      }\n      //valid funcionBind\n      //TODO: Improve performance and logic\n      var functionBind = html.split('$$');\n      for (var i = 1; i < functionBind.length; i++) {\n        var prop = functionBind[i].split('{')[1].split(',')[0].split('}')[0];\n        var value = fetchFromObject(dataObj,prop);\n        var functionName = functionBind[i].split('{')[0];\n        var functionReplace = functionBind[i].split('}')[0] + '}';\n        var functionInvoke = 'window.MobileUI.' + functionBind[i].split('}')[0].replace(prop, \"'\"+value+\"'\").replace('{','(') + ')';\n        var valueBind = eval(functionInvoke);\n        html = html.replace(new RegExp('\\\\$\\\\$'+functionReplace, 'g'), valueBind);\n      }\n      var divBind = document.createElement('div');\n      elm.parentNode.insertBefore(divBind, elm);\n      html = html.replace('data=','data-binded=');\n      divBind.outerHTML = html;\n    }\n    if(data.constructor === Array){\n      for(var id in data){\n        bindWriteElement(data[id], id);\n      }\n    } else {\n      bindWriteElement(data);\n    }\n  }\n  fetchFromObject = function(obj, prop) {\n      if(typeof obj === 'undefined') {\n         console.error('Object for property ',prop,' is undefined!');\n          return '';\n      }\n      var _index = prop.indexOf('.')\n      if(_index > -1) {\n          return fetchFromObject(obj[prop.substring(0, _index)], prop.substr(_index + 1));\n      }\n      if(obj.constructor === String || obj.constructor === Number || obj.constructor === Boolean || obj.constructor === Date){\n        return !obj ? '' : obj;\n      }\n      return !obj[prop] ? '' : obj[prop];\n  }\n  dispatchEventObserver = function(watcher){\n    var customEvent = new CustomEvent(\"dataUpdated\",{ \"detail\": {dataKey:watcher.dataKey, dataValue: watcher.dataValue}});\n    document.dispatchEvent(customEvent);\n  }\n  dataObserver = function(data,token){\n    if(!observerWatchers[token]) {\n      observerWatchers[token] = {\n        dataKey: data,\n        dataValue: copyObj(fetchFromObject(window, data))\n      };\n    }\n    var observer = fetchFromObject(window, observerWatchers[token].dataKey);\n    if(observerWatchers[token].dataValue.constructor === Array && observerWatchers[token].dataValue.length !== observer.length){\n      //TODO: Improve logic for performance\n      reDataBind(observerWatchers[token]);\n      dispatchEventObserver(observerWatchers[token]);\n    } else if(observerWatchers[token].dataValue.constructor === Array && observerWatchers[token].dataValue.toString() !== observer.toString()){\n      //TODO: Improve logic for performance\n      reDataBind(observerWatchers[token]);\n      dispatchEventObserver(observerWatchers[token]);\n    } else if(JSON.stringify(observerWatchers[token].dataValue) !== JSON.stringify(observer)){\n      //TODO: Improve logic for performance\n      reDataBind(observerWatchers[token]);\n      dispatchEventObserver(observerWatchers[token]);\n    }\n    setTimeout(function(){ dataObserver(data, token) }, 100);\n  }\n  copyObj = function(obj){\n    return JSON.parse(JSON.stringify(obj));\n  }\n\n  dataBind();\n\n  //Functions Help\n  window.MobileUI = {\n    bind: function(){\n      dataBind();\n    },\n    objectByForm: function(id){\n      var form = document.getElementById(id);\n      var obj = {};\n      var elms = form.querySelectorAll('input,textarea,select');\n      for (var i = 0; i < elms.length; i++) {\n        if(elms[i].id && elms[i].type === 'checkbox'){\n          obj[elms[i].id] =  elms[i].checked;\n        } else if(elms[i].name && elms[i].type === 'radio'){\n          var valueRaio = form.querySelector('input[name=\"'+elms[i].name+'\"]:checked').value;\n          if(valueRaio){\n              obj[elms[i].name] =  valueRaio;\n          }\n        } else if(elms[i].id) {\n          obj[elms[i].id] =  elms[i].value;\n        }\n      }\n      return obj;\n    },\n    disable: function(id){\n      var form = document.getElementById(id);\n      var elms = form.querySelectorAll('input,textarea,select,button,a');\n      for (var i = 0; i < elms.length; i++) {\n          elms[i].setAttribute('disabled','disabled');\n      }\n    },\n    enable: function(id){\n      var form = document.getElementById(id);\n      var elms = form.querySelectorAll('input,textarea,select,button,a');\n      for (var i = 0; i < elms.length; i++) {\n          elms[i].removeAttribute('disabled');\n      }\n    },\n    formByObject: function(id, data){\n      var form = document.getElementById(id);\n      var elms = form.querySelectorAll('input,textarea,select');\n      for (var i = 0; i < elms.length; i++) {\n        if(elms[i].id && elms[i].type === 'checkbox'){\n          elms[i].checked = data[elms[i].id];\n        } else if(elms[i].name && elms[i].type === 'radio'){\n          var inputRadio = form.querySelector('input[name=\"'+elms[i].name+'\"][value=\"'+data[elms[i].name]+'\"]');\n          if(inputRadio){\n            inputRadio.checked=true;\n          }\n        } else if(elms[i].id && data[elms[i].id]) {\n          elms[i].value = data[elms[i].id];\n        }\n      }\n    },\n    clearForm: function(id){\n      var form = document.getElementById(id);\n      var elms = form.querySelectorAll('input,textarea,select');\n      for (var i = 0; i < elms.length; i++) {\n        if(elms[i].id && elms[i].type.indexOf('select') >= 0) {\n          var options = elms[i].options;\n          for (var iO = 0; iO < options.length; iO++) {\n            if(options[iO].defaultSelected){\n              elms[i].selectedIndex = iO;\n              elms[i].found=true;\n            }\n          }\n          if(!elms[i].found){\n            elms[i].selectedIndex = 0;\n          }\n        } else if(elms[i].id && elms[i].type === 'checkbox') {\n           elms[i].checked = elms[i].getAttribute('checked')!==null ? true : false;\n        } else if(elms[i].name && elms[i].type === 'radio') {\n          form.querySelector('input[name=\"'+elms[i].name+'\"][checked]').checked=true;\n        } else if(elms[i].id){\n          elms[i].value = '';\n        }\n      }\n    },\n    show: function(id){\n      document.getElementById(id).style.display='block';\n    },\n    hide: function(id){\n      document.getElementById(id).style.display='none';\n    },\n    showHide: function(id){\n      if(document.getElementById(id).offsetParent === null){\n        this.show(id);\n      } else {\n        this.hide(id);\n      }\n    },\n    focus: function(id){\n      document.getElementById(id).focus();\n    },\n    formatMoney: function(n, c, d, t){\n      var c = isNaN(c = Math.abs(c)) ? 2 : c,\n      d = d == undefined ? \".\" : d,\n      t = t == undefined ? \",\" : t,\n      s = n < 0 ? \"-\" : \"\",\n      i = String(parseInt(n = Math.abs(Number(n) || 0).toFixed(c))),\n      j = (j = i.length) > 3 ? j % 3 : 0;\n     return s + (j ? i.substr(0, j) + t : \"\") + i.substr(j).replace(/(\\d{3})(?=\\d)/g, \"$1\" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : \"\");\n    },\n    ajax: superagent\n  }\n})();\n"
  },
  {
    "path": "mobileuijs/style.css",
    "content": "*[data] {\n  display: none !important;\n}\n"
  },
  {
    "path": "momentjs/component.json",
    "content": "{\n  \"name\":\"momentjs\",\n  \"author\": \"timrwood\",\n  \"dependencies\": []\n}\n"
  },
  {
    "path": "momentjs/index.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title></title>\n    <link href=\"https://fonts.googleapis.com/css?family=Chewy|Dosis|Raleway:400,700|Roboto:300,400,900,\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n    <link rel=\"stylesheet\" href=\"../base/reset.css\">\n    <link rel=\"stylesheet\" href=\"../base/mobileui.css\">\n    <link rel=\"stylesheet\" href=\"../base/colors.css\">\n    <link rel=\"stylesheet\" href=\"../base/icons.css\">\n    <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n    <style>\n      .content { margin-left:50px}\n    </style>\n    <script type=\"text/javascript\" src=\"../base/base.js\"></script>\n    <script type=\"text/javascript\" src=\"script.js\"></script>\n  </head>\n  <body class=\"content\">\n    <!-- BEGIN -->\n    <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">Moment.js</h2>\n    <p>\n      <a href=\"http://momentjs.com/\" target=\"_blank\">Moment.js</a> is a lightweight JavaScript date library for parsing, manipulating, and formatting dates. It is design to work in both the browser and in NodeJS. Moment supports dates in all standard formats, locales, relative time, and time zones.\n    </p>\n    <p>\n      To use this component you need install with the command:\n    </p>\n    <pre>mobileui install momentjs</pre>\n    <p>See the Moment.js documentation and its resources at <a href=\"http://momentjs.com/docs/\" target=\"_blank\">momentjs.com/docs</a>.</p>\n\n    <!-- DONE -->\n    <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n    <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n    <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n    <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "momentjs/script.js",
    "content": "!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):e.moment=t()}(this,function(){\"use strict\";function e(){return Yt.apply(null,arguments)}function t(e){return e instanceof Array||\"[object Array]\"===Object.prototype.toString.call(e)}function n(e){return null!=e&&\"[object Object]\"===Object.prototype.toString.call(e)}function s(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(e.hasOwnProperty(t))return!1;return!0}function i(e){return void 0===e}function r(e){return\"number\"==typeof e||\"[object Number]\"===Object.prototype.toString.call(e)}function a(e){return e instanceof Date||\"[object Date]\"===Object.prototype.toString.call(e)}function o(e,t){var n,s=[];for(n=0;n<e.length;++n)s.push(t(e[n],n));return s}function u(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function l(e,t){for(var n in t)u(t,n)&&(e[n]=t[n]);return u(t,\"toString\")&&(e.toString=t.toString),u(t,\"valueOf\")&&(e.valueOf=t.valueOf),e}function d(e,t,n,s){return je(e,t,n,s,!0).utc()}function h(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}}function c(e){return null==e._pf&&(e._pf=h()),e._pf}function f(e){if(null==e._isValid){var t=c(e),n=Ot.call(t.parsedDateParts,function(e){return null!=e}),s=!isNaN(e._d.getTime())&&t.overflow<0&&!t.empty&&!t.invalidMonth&&!t.invalidWeekday&&!t.weekdayMismatch&&!t.nullInput&&!t.invalidFormat&&!t.userInvalidated&&(!t.meridiem||t.meridiem&&n);if(e._strict&&(s=s&&0===t.charsLeftOver&&0===t.unusedTokens.length&&void 0===t.bigHour),null!=Object.isFrozen&&Object.isFrozen(e))return s;e._isValid=s}return e._isValid}function m(e){var t=d(NaN);return null!=e?l(c(t),e):c(t).userInvalidated=!0,t}function _(e,t){var n,s,r;if(i(t._isAMomentObject)||(e._isAMomentObject=t._isAMomentObject),i(t._i)||(e._i=t._i),i(t._f)||(e._f=t._f),i(t._l)||(e._l=t._l),i(t._strict)||(e._strict=t._strict),i(t._tzm)||(e._tzm=t._tzm),i(t._isUTC)||(e._isUTC=t._isUTC),i(t._offset)||(e._offset=t._offset),i(t._pf)||(e._pf=c(t)),i(t._locale)||(e._locale=t._locale),xt.length>0)for(n=0;n<xt.length;n++)i(r=t[s=xt[n]])||(e[s]=r);return e}function y(t){_(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===Tt&&(Tt=!0,e.updateOffset(this),Tt=!1)}function g(e){return e instanceof y||null!=e&&null!=e._isAMomentObject}function p(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function w(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=p(t)),n}function v(e,t,n){var s,i=Math.min(e.length,t.length),r=Math.abs(e.length-t.length),a=0;for(s=0;s<i;s++)(n&&e[s]!==t[s]||!n&&w(e[s])!==w(t[s]))&&a++;return a+r}function M(t){!1===e.suppressDeprecationWarnings&&\"undefined\"!=typeof console&&console.warn&&console.warn(\"Deprecation warning: \"+t)}function k(t,n){var s=!0;return l(function(){if(null!=e.deprecationHandler&&e.deprecationHandler(null,t),s){for(var i,r=[],a=0;a<arguments.length;a++){if(i=\"\",\"object\"==typeof arguments[a]){i+=\"\\n[\"+a+\"] \";for(var o in arguments[0])i+=o+\": \"+arguments[0][o]+\", \";i=i.slice(0,-2)}else i=arguments[a];r.push(i)}M(t+\"\\nArguments: \"+Array.prototype.slice.call(r).join(\"\")+\"\\n\"+(new Error).stack),s=!1}return n.apply(this,arguments)},n)}function S(t,n){null!=e.deprecationHandler&&e.deprecationHandler(t,n),bt[t]||(M(n),bt[t]=!0)}function D(e){return e instanceof Function||\"[object Function]\"===Object.prototype.toString.call(e)}function Y(e,t){var s,i=l({},e);for(s in t)u(t,s)&&(n(e[s])&&n(t[s])?(i[s]={},l(i[s],e[s]),l(i[s],t[s])):null!=t[s]?i[s]=t[s]:delete i[s]);for(s in e)u(e,s)&&!u(t,s)&&n(e[s])&&(i[s]=l({},i[s]));return i}function O(e){null!=e&&this.set(e)}function x(e,t){var n=e.toLowerCase();Ut[n]=Ut[n+\"s\"]=Ut[t]=e}function T(e){return\"string\"==typeof e?Ut[e]||Ut[e.toLowerCase()]:void 0}function b(e){var t,n,s={};for(n in e)u(e,n)&&(t=T(n))&&(s[t]=e[n]);return s}function P(e,t){Nt[e]=t}function W(e){var t=[];for(var n in e)t.push({unit:n,priority:Nt[n]});return t.sort(function(e,t){return e.priority-t.priority}),t}function R(e,t,n){var s=\"\"+Math.abs(e),i=t-s.length;return(e>=0?n?\"+\":\"\":\"-\")+Math.pow(10,Math.max(0,i)).toString().substr(1)+s}function C(e,t,n,s){var i=s;\"string\"==typeof s&&(i=function(){return this[s]()}),e&&(Vt[e]=i),t&&(Vt[t[0]]=function(){return R(i.apply(this,arguments),t[1],t[2])}),n&&(Vt[n]=function(){return this.localeData().ordinal(i.apply(this,arguments),e)})}function F(e){return e.match(/\\[[\\s\\S]/)?e.replace(/^\\[|\\]$/g,\"\"):e.replace(/\\\\/g,\"\")}function U(e){var t,n,s=e.match(Ht);for(t=0,n=s.length;t<n;t++)Vt[s[t]]?s[t]=Vt[s[t]]:s[t]=F(s[t]);return function(t){var i,r=\"\";for(i=0;i<n;i++)r+=D(s[i])?s[i].call(t,e):s[i];return r}}function N(e,t){return e.isValid()?(t=H(t,e.localeData()),Gt[t]=Gt[t]||U(t),Gt[t](e)):e.localeData().invalidDate()}function H(e,t){var n=5;for(Lt.lastIndex=0;n>=0&&Lt.test(e);)e=e.replace(Lt,function(e){return t.longDateFormat(e)||e}),Lt.lastIndex=0,n-=1;return e}function L(e,t,n){rn[e]=D(t)?t:function(e,s){return e&&n?n:t}}function G(e,t){return u(rn,e)?rn[e](t._strict,t._locale):new RegExp(V(e))}function V(e){return j(e.replace(\"\\\\\",\"\").replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,function(e,t,n,s,i){return t||n||s||i}))}function j(e){return e.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\")}function I(e,t){var n,s=t;for(\"string\"==typeof e&&(e=[e]),r(t)&&(s=function(e,n){n[t]=w(e)}),n=0;n<e.length;n++)an[e[n]]=s}function E(e,t){I(e,function(e,n,s,i){s._w=s._w||{},t(e,s._w,s,i)})}function A(e,t,n){null!=t&&u(an,e)&&an[e](t,n._a,n,e)}function z(e){return Z(e)?366:365}function Z(e){return e%4==0&&e%100!=0||e%400==0}function $(t,n){return function(s){return null!=s?(J(this,t,s),e.updateOffset(this,n),this):q(this,t)}}function q(e,t){return e.isValid()?e._d[\"get\"+(e._isUTC?\"UTC\":\"\")+t]():NaN}function J(e,t,n){e.isValid()&&!isNaN(n)&&(\"FullYear\"===t&&Z(e.year())?e._d[\"set\"+(e._isUTC?\"UTC\":\"\")+t](n,e.month(),Q(n,e.month())):e._d[\"set\"+(e._isUTC?\"UTC\":\"\")+t](n))}function B(e,t){return(e%t+t)%t}function Q(e,t){if(isNaN(e)||isNaN(t))return NaN;var n=B(t,12);return e+=(t-n)/12,1===n?Z(e)?29:28:31-n%7%2}function X(e,t,n){var s,i,r,a=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],s=0;s<12;++s)r=d([2e3,s]),this._shortMonthsParse[s]=this.monthsShort(r,\"\").toLocaleLowerCase(),this._longMonthsParse[s]=this.months(r,\"\").toLocaleLowerCase();return n?\"MMM\"===t?-1!==(i=yn.call(this._shortMonthsParse,a))?i:null:-1!==(i=yn.call(this._longMonthsParse,a))?i:null:\"MMM\"===t?-1!==(i=yn.call(this._shortMonthsParse,a))?i:-1!==(i=yn.call(this._longMonthsParse,a))?i:null:-1!==(i=yn.call(this._longMonthsParse,a))?i:-1!==(i=yn.call(this._shortMonthsParse,a))?i:null}function K(e,t){var n;if(!e.isValid())return e;if(\"string\"==typeof t)if(/^\\d+$/.test(t))t=w(t);else if(t=e.localeData().monthsParse(t),!r(t))return e;return n=Math.min(e.date(),Q(e.year(),t)),e._d[\"set\"+(e._isUTC?\"UTC\":\"\")+\"Month\"](t,n),e}function ee(t){return null!=t?(K(this,t),e.updateOffset(this,!0),this):q(this,\"Month\")}function te(){function e(e,t){return t.length-e.length}var t,n,s=[],i=[],r=[];for(t=0;t<12;t++)n=d([2e3,t]),s.push(this.monthsShort(n,\"\")),i.push(this.months(n,\"\")),r.push(this.months(n,\"\")),r.push(this.monthsShort(n,\"\"));for(s.sort(e),i.sort(e),r.sort(e),t=0;t<12;t++)s[t]=j(s[t]),i[t]=j(i[t]);for(t=0;t<24;t++)r[t]=j(r[t]);this._monthsRegex=new RegExp(\"^(\"+r.join(\"|\")+\")\",\"i\"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp(\"^(\"+i.join(\"|\")+\")\",\"i\"),this._monthsShortStrictRegex=new RegExp(\"^(\"+s.join(\"|\")+\")\",\"i\")}function ne(e,t,n,s,i,r,a){var o=new Date(e,t,n,s,i,r,a);return e<100&&e>=0&&isFinite(o.getFullYear())&&o.setFullYear(e),o}function se(e){var t=new Date(Date.UTC.apply(null,arguments));return e<100&&e>=0&&isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e),t}function ie(e,t,n){var s=7+t-n;return-((7+se(e,0,s).getUTCDay()-t)%7)+s-1}function re(e,t,n,s,i){var r,a,o=1+7*(t-1)+(7+n-s)%7+ie(e,s,i);return o<=0?a=z(r=e-1)+o:o>z(e)?(r=e+1,a=o-z(e)):(r=e,a=o),{year:r,dayOfYear:a}}function ae(e,t,n){var s,i,r=ie(e.year(),t,n),a=Math.floor((e.dayOfYear()-r-1)/7)+1;return a<1?s=a+oe(i=e.year()-1,t,n):a>oe(e.year(),t,n)?(s=a-oe(e.year(),t,n),i=e.year()+1):(i=e.year(),s=a),{week:s,year:i}}function oe(e,t,n){var s=ie(e,t,n),i=ie(e+1,t,n);return(z(e)-s+i)/7}function ue(e,t){return\"string\"!=typeof e?e:isNaN(e)?\"number\"==typeof(e=t.weekdaysParse(e))?e:null:parseInt(e,10)}function le(e,t){return\"string\"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function de(e,t,n){var s,i,r,a=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],s=0;s<7;++s)r=d([2e3,1]).day(s),this._minWeekdaysParse[s]=this.weekdaysMin(r,\"\").toLocaleLowerCase(),this._shortWeekdaysParse[s]=this.weekdaysShort(r,\"\").toLocaleLowerCase(),this._weekdaysParse[s]=this.weekdays(r,\"\").toLocaleLowerCase();return n?\"dddd\"===t?-1!==(i=yn.call(this._weekdaysParse,a))?i:null:\"ddd\"===t?-1!==(i=yn.call(this._shortWeekdaysParse,a))?i:null:-1!==(i=yn.call(this._minWeekdaysParse,a))?i:null:\"dddd\"===t?-1!==(i=yn.call(this._weekdaysParse,a))?i:-1!==(i=yn.call(this._shortWeekdaysParse,a))?i:-1!==(i=yn.call(this._minWeekdaysParse,a))?i:null:\"ddd\"===t?-1!==(i=yn.call(this._shortWeekdaysParse,a))?i:-1!==(i=yn.call(this._weekdaysParse,a))?i:-1!==(i=yn.call(this._minWeekdaysParse,a))?i:null:-1!==(i=yn.call(this._minWeekdaysParse,a))?i:-1!==(i=yn.call(this._weekdaysParse,a))?i:-1!==(i=yn.call(this._shortWeekdaysParse,a))?i:null}function he(){function e(e,t){return t.length-e.length}var t,n,s,i,r,a=[],o=[],u=[],l=[];for(t=0;t<7;t++)n=d([2e3,1]).day(t),s=this.weekdaysMin(n,\"\"),i=this.weekdaysShort(n,\"\"),r=this.weekdays(n,\"\"),a.push(s),o.push(i),u.push(r),l.push(s),l.push(i),l.push(r);for(a.sort(e),o.sort(e),u.sort(e),l.sort(e),t=0;t<7;t++)o[t]=j(o[t]),u[t]=j(u[t]),l[t]=j(l[t]);this._weekdaysRegex=new RegExp(\"^(\"+l.join(\"|\")+\")\",\"i\"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp(\"^(\"+u.join(\"|\")+\")\",\"i\"),this._weekdaysShortStrictRegex=new RegExp(\"^(\"+o.join(\"|\")+\")\",\"i\"),this._weekdaysMinStrictRegex=new RegExp(\"^(\"+a.join(\"|\")+\")\",\"i\")}function ce(){return this.hours()%12||12}function fe(e,t){C(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function me(e,t){return t._meridiemParse}function _e(e){return e?e.toLowerCase().replace(\"_\",\"-\"):e}function ye(e){for(var t,n,s,i,r=0;r<e.length;){for(t=(i=_e(e[r]).split(\"-\")).length,n=(n=_e(e[r+1]))?n.split(\"-\"):null;t>0;){if(s=ge(i.slice(0,t).join(\"-\")))return s;if(n&&n.length>=t&&v(i,n,!0)>=t-1)break;t--}r++}return null}function ge(e){var t=null;if(!Fn[e]&&\"undefined\"!=typeof module&&module&&module.exports){t=Pn._abbr;try{require(\"moment/locale/\"+e)}catch(t){try{require(\"./locale/\"+e)}catch(e){}}pe(t)}return Fn[e]}function pe(e,t){var n;return e&&(n=i(t)?ve(e):we(e,t))&&(Pn=n),Pn._abbr}function we(e,t){if(null!==t){var n=Cn;if(t.abbr=e,null!=Fn[e])S(\"defineLocaleOverride\",\"use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info.\"),n=Fn[e]._config;else if(null!=t.parentLocale){if(null==Fn[t.parentLocale])return Un[t.parentLocale]||(Un[t.parentLocale]=[]),Un[t.parentLocale].push({name:e,config:t}),null;n=Fn[t.parentLocale]._config}return Fn[e]=new O(Y(n,t)),Un[e]&&Un[e].forEach(function(e){we(e.name,e.config)}),pe(e),Fn[e]}return delete Fn[e],null}function ve(e){var n;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return Pn;if(!t(e)){if(n=ge(e))return n;e=[e]}return ye(e)}function Me(e){var t,n=e._a;return n&&-2===c(e).overflow&&(t=n[un]<0||n[un]>11?un:n[ln]<1||n[ln]>Q(n[on],n[un])?ln:n[dn]<0||n[dn]>24||24===n[dn]&&(0!==n[hn]||0!==n[cn]||0!==n[fn])?dn:n[hn]<0||n[hn]>59?hn:n[cn]<0||n[cn]>59?cn:n[fn]<0||n[fn]>999?fn:-1,c(e)._overflowDayOfYear&&(t<on||t>ln)&&(t=ln),c(e)._overflowWeeks&&-1===t&&(t=mn),c(e)._overflowWeekday&&-1===t&&(t=_n),c(e).overflow=t),e}function ke(e,t,n){return null!=e?e:null!=t?t:n}function Se(t){var n=new Date(e.now());return t._useUTC?[n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate()]:[n.getFullYear(),n.getMonth(),n.getDate()]}function De(e){var t,n,s,i,r=[];if(!e._d){for(s=Se(e),e._w&&null==e._a[ln]&&null==e._a[un]&&Ye(e),null!=e._dayOfYear&&(i=ke(e._a[on],s[on]),(e._dayOfYear>z(i)||0===e._dayOfYear)&&(c(e)._overflowDayOfYear=!0),n=se(i,0,e._dayOfYear),e._a[un]=n.getUTCMonth(),e._a[ln]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=r[t]=s[t];for(;t<7;t++)e._a[t]=r[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[dn]&&0===e._a[hn]&&0===e._a[cn]&&0===e._a[fn]&&(e._nextDay=!0,e._a[dn]=0),e._d=(e._useUTC?se:ne).apply(null,r),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[dn]=24),e._w&&void 0!==e._w.d&&e._w.d!==e._d.getDay()&&(c(e).weekdayMismatch=!0)}}function Ye(e){var t,n,s,i,r,a,o,u;if(null!=(t=e._w).GG||null!=t.W||null!=t.E)r=1,a=4,n=ke(t.GG,e._a[on],ae(Ie(),1,4).year),s=ke(t.W,1),((i=ke(t.E,1))<1||i>7)&&(u=!0);else{r=e._locale._week.dow,a=e._locale._week.doy;var l=ae(Ie(),r,a);n=ke(t.gg,e._a[on],l.year),s=ke(t.w,l.week),null!=t.d?((i=t.d)<0||i>6)&&(u=!0):null!=t.e?(i=t.e+r,(t.e<0||t.e>6)&&(u=!0)):i=r}s<1||s>oe(n,r,a)?c(e)._overflowWeeks=!0:null!=u?c(e)._overflowWeekday=!0:(o=re(n,s,i,r,a),e._a[on]=o.year,e._dayOfYear=o.dayOfYear)}function Oe(e){var t,n,s,i,r,a,o=e._i,u=Nn.exec(o)||Hn.exec(o);if(u){for(c(e).iso=!0,t=0,n=Gn.length;t<n;t++)if(Gn[t][1].exec(u[1])){i=Gn[t][0],s=!1!==Gn[t][2];break}if(null==i)return void(e._isValid=!1);if(u[3]){for(t=0,n=Vn.length;t<n;t++)if(Vn[t][1].exec(u[3])){r=(u[2]||\" \")+Vn[t][0];break}if(null==r)return void(e._isValid=!1)}if(!s&&null!=r)return void(e._isValid=!1);if(u[4]){if(!Ln.exec(u[4]))return void(e._isValid=!1);a=\"Z\"}e._f=i+(r||\"\")+(a||\"\"),Fe(e)}else e._isValid=!1}function xe(e,t,n,s,i,r){var a=[Te(e),vn.indexOf(t),parseInt(n,10),parseInt(s,10),parseInt(i,10)];return r&&a.push(parseInt(r,10)),a}function Te(e){var t=parseInt(e,10);return t<=49?2e3+t:t<=999?1900+t:t}function be(e){return e.replace(/\\([^)]*\\)|[\\n\\t]/g,\" \").replace(/(\\s\\s+)/g,\" \").trim()}function Pe(e,t,n){return!e||Yn.indexOf(e)===new Date(t[0],t[1],t[2]).getDay()||(c(n).weekdayMismatch=!0,n._isValid=!1,!1)}function We(e,t,n){if(e)return En[e];if(t)return 0;var s=parseInt(n,10),i=s%100;return 60*((s-i)/100)+i}function Re(e){var t=In.exec(be(e._i));if(t){var n=xe(t[4],t[3],t[2],t[5],t[6],t[7]);if(!Pe(t[1],n,e))return;e._a=n,e._tzm=We(t[8],t[9],t[10]),e._d=se.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),c(e).rfc2822=!0}else e._isValid=!1}function Ce(t){var n=jn.exec(t._i);null===n?(Oe(t),!1===t._isValid&&(delete t._isValid,Re(t),!1===t._isValid&&(delete t._isValid,e.createFromInputFallback(t)))):t._d=new Date(+n[1])}function Fe(t){if(t._f!==e.ISO_8601)if(t._f!==e.RFC_2822){t._a=[],c(t).empty=!0;var n,s,i,r,a,o=\"\"+t._i,u=o.length,l=0;for(i=H(t._f,t._locale).match(Ht)||[],n=0;n<i.length;n++)r=i[n],(s=(o.match(G(r,t))||[])[0])&&((a=o.substr(0,o.indexOf(s))).length>0&&c(t).unusedInput.push(a),o=o.slice(o.indexOf(s)+s.length),l+=s.length),Vt[r]?(s?c(t).empty=!1:c(t).unusedTokens.push(r),A(r,s,t)):t._strict&&!s&&c(t).unusedTokens.push(r);c(t).charsLeftOver=u-l,o.length>0&&c(t).unusedInput.push(o),t._a[dn]<=12&&!0===c(t).bigHour&&t._a[dn]>0&&(c(t).bigHour=void 0),c(t).parsedDateParts=t._a.slice(0),c(t).meridiem=t._meridiem,t._a[dn]=Ue(t._locale,t._a[dn],t._meridiem),De(t),Me(t)}else Re(t);else Oe(t)}function Ue(e,t,n){var s;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?((s=e.isPM(n))&&t<12&&(t+=12),s||12!==t||(t=0),t):t}function Ne(e){var t,n,s,i,r;if(0===e._f.length)return c(e).invalidFormat=!0,void(e._d=new Date(NaN));for(i=0;i<e._f.length;i++)r=0,t=_({},e),null!=e._useUTC&&(t._useUTC=e._useUTC),t._f=e._f[i],Fe(t),f(t)&&(r+=c(t).charsLeftOver,r+=10*c(t).unusedTokens.length,c(t).score=r,(null==s||r<s)&&(s=r,n=t));l(e,n||t)}function He(e){if(!e._d){var t=b(e._i);e._a=o([t.year,t.month,t.day||t.date,t.hour,t.minute,t.second,t.millisecond],function(e){return e&&parseInt(e,10)}),De(e)}}function Le(e){var t=new y(Me(Ge(e)));return t._nextDay&&(t.add(1,\"d\"),t._nextDay=void 0),t}function Ge(e){var n=e._i,s=e._f;return e._locale=e._locale||ve(e._l),null===n||void 0===s&&\"\"===n?m({nullInput:!0}):(\"string\"==typeof n&&(e._i=n=e._locale.preparse(n)),g(n)?new y(Me(n)):(a(n)?e._d=n:t(s)?Ne(e):s?Fe(e):Ve(e),f(e)||(e._d=null),e))}function Ve(s){var u=s._i;i(u)?s._d=new Date(e.now()):a(u)?s._d=new Date(u.valueOf()):\"string\"==typeof u?Ce(s):t(u)?(s._a=o(u.slice(0),function(e){return parseInt(e,10)}),De(s)):n(u)?He(s):r(u)?s._d=new Date(u):e.createFromInputFallback(s)}function je(e,i,r,a,o){var u={};return!0!==r&&!1!==r||(a=r,r=void 0),(n(e)&&s(e)||t(e)&&0===e.length)&&(e=void 0),u._isAMomentObject=!0,u._useUTC=u._isUTC=o,u._l=r,u._i=e,u._f=i,u._strict=a,Le(u)}function Ie(e,t,n,s){return je(e,t,n,s,!1)}function Ee(e,n){var s,i;if(1===n.length&&t(n[0])&&(n=n[0]),!n.length)return Ie();for(s=n[0],i=1;i<n.length;++i)n[i].isValid()&&!n[i][e](s)||(s=n[i]);return s}function Ae(e){for(var t in e)if(-1===yn.call(Zn,t)||null!=e[t]&&isNaN(e[t]))return!1;for(var n=!1,s=0;s<Zn.length;++s)if(e[Zn[s]]){if(n)return!1;parseFloat(e[Zn[s]])!==w(e[Zn[s]])&&(n=!0)}return!0}function ze(e){var t=b(e),n=t.year||0,s=t.quarter||0,i=t.month||0,r=t.week||0,a=t.day||0,o=t.hour||0,u=t.minute||0,l=t.second||0,d=t.millisecond||0;this._isValid=Ae(t),this._milliseconds=+d+1e3*l+6e4*u+1e3*o*60*60,this._days=+a+7*r,this._months=+i+3*s+12*n,this._data={},this._locale=ve(),this._bubble()}function Ze(e){return e instanceof ze}function $e(e){return e<0?-1*Math.round(-1*e):Math.round(e)}function qe(e,t){C(e,0,0,function(){var e=this.utcOffset(),n=\"+\";return e<0&&(e=-e,n=\"-\"),n+R(~~(e/60),2)+t+R(~~e%60,2)})}function Je(e,t){var n=(t||\"\").match(e);if(null===n)return null;var s=((n[n.length-1]||[])+\"\").match($n)||[\"-\",0,0],i=60*s[1]+w(s[2]);return 0===i?0:\"+\"===s[0]?i:-i}function Be(t,n){var s,i;return n._isUTC?(s=n.clone(),i=(g(t)||a(t)?t.valueOf():Ie(t).valueOf())-s.valueOf(),s._d.setTime(s._d.valueOf()+i),e.updateOffset(s,!1),s):Ie(t).local()}function Qe(e){return 15*-Math.round(e._d.getTimezoneOffset()/15)}function Xe(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Ke(e,t){var n,s,i,a=e,o=null;return Ze(e)?a={ms:e._milliseconds,d:e._days,M:e._months}:r(e)?(a={},t?a[t]=e:a.milliseconds=e):(o=qn.exec(e))?(n=\"-\"===o[1]?-1:1,a={y:0,d:w(o[ln])*n,h:w(o[dn])*n,m:w(o[hn])*n,s:w(o[cn])*n,ms:w($e(1e3*o[fn]))*n}):(o=Jn.exec(e))?(n=\"-\"===o[1]?-1:(o[1],1),a={y:et(o[2],n),M:et(o[3],n),w:et(o[4],n),d:et(o[5],n),h:et(o[6],n),m:et(o[7],n),s:et(o[8],n)}):null==a?a={}:\"object\"==typeof a&&(\"from\"in a||\"to\"in a)&&(i=nt(Ie(a.from),Ie(a.to)),(a={}).ms=i.milliseconds,a.M=i.months),s=new ze(a),Ze(e)&&u(e,\"_locale\")&&(s._locale=e._locale),s}function et(e,t){var n=e&&parseFloat(e.replace(\",\",\".\"));return(isNaN(n)?0:n)*t}function tt(e,t){var n={milliseconds:0,months:0};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,\"M\").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,\"M\"),n}function nt(e,t){var n;return e.isValid()&&t.isValid()?(t=Be(t,e),e.isBefore(t)?n=tt(e,t):((n=tt(t,e)).milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function st(e,t){return function(n,s){var i,r;return null===s||isNaN(+s)||(S(t,\"moment().\"+t+\"(period, number) is deprecated. Please use moment().\"+t+\"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.\"),r=n,n=s,s=r),n=\"string\"==typeof n?+n:n,i=Ke(n,s),it(this,i,e),this}}function it(t,n,s,i){var r=n._milliseconds,a=$e(n._days),o=$e(n._months);t.isValid()&&(i=null==i||i,o&&K(t,q(t,\"Month\")+o*s),a&&J(t,\"Date\",q(t,\"Date\")+a*s),r&&t._d.setTime(t._d.valueOf()+r*s),i&&e.updateOffset(t,a||o))}function rt(e,t){var n,s=12*(t.year()-e.year())+(t.month()-e.month()),i=e.clone().add(s,\"months\");return n=t-i<0?(t-i)/(i-e.clone().add(s-1,\"months\")):(t-i)/(e.clone().add(s+1,\"months\")-i),-(s+n)||0}function at(e){var t;return void 0===e?this._locale._abbr:(null!=(t=ve(e))&&(this._locale=t),this)}function ot(){return this._locale}function ut(e,t){C(0,[e,e.length],0,t)}function lt(e,t,n,s,i){var r;return null==e?ae(this,s,i).year:(r=oe(e,s,i),t>r&&(t=r),dt.call(this,e,t,n,s,i))}function dt(e,t,n,s,i){var r=re(e,t,n,s,i),a=se(r.year,0,r.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}function ht(e){return e}function ct(e,t,n,s){var i=ve(),r=d().set(s,t);return i[n](r,e)}function ft(e,t,n){if(r(e)&&(t=e,e=void 0),e=e||\"\",null!=t)return ct(e,t,n,\"month\");var s,i=[];for(s=0;s<12;s++)i[s]=ct(e,s,n,\"month\");return i}function mt(e,t,n,s){\"boolean\"==typeof e?(r(t)&&(n=t,t=void 0),t=t||\"\"):(n=t=e,e=!1,r(t)&&(n=t,t=void 0),t=t||\"\");var i=ve(),a=e?i._week.dow:0;if(null!=n)return ct(t,(n+a)%7,s,\"day\");var o,u=[];for(o=0;o<7;o++)u[o]=ct(t,(o+a)%7,s,\"day\");return u}function _t(e,t,n,s){var i=Ke(t,n);return e._milliseconds+=s*i._milliseconds,e._days+=s*i._days,e._months+=s*i._months,e._bubble()}function yt(e){return e<0?Math.floor(e):Math.ceil(e)}function gt(e){return 4800*e/146097}function pt(e){return 146097*e/4800}function wt(e){return function(){return this.as(e)}}function vt(e){return function(){return this.isValid()?this._data[e]:NaN}}function Mt(e,t,n,s,i){return i.relativeTime(t||1,!!n,e,s)}function kt(e,t,n){var s=Ke(e).abs(),i=ks(s.as(\"s\")),r=ks(s.as(\"m\")),a=ks(s.as(\"h\")),o=ks(s.as(\"d\")),u=ks(s.as(\"M\")),l=ks(s.as(\"y\")),d=i<=Ss.ss&&[\"s\",i]||i<Ss.s&&[\"ss\",i]||r<=1&&[\"m\"]||r<Ss.m&&[\"mm\",r]||a<=1&&[\"h\"]||a<Ss.h&&[\"hh\",a]||o<=1&&[\"d\"]||o<Ss.d&&[\"dd\",o]||u<=1&&[\"M\"]||u<Ss.M&&[\"MM\",u]||l<=1&&[\"y\"]||[\"yy\",l];return d[2]=t,d[3]=+e>0,d[4]=n,Mt.apply(null,d)}function St(e){return(e>0)-(e<0)||+e}function Dt(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n,s=Ds(this._milliseconds)/1e3,i=Ds(this._days),r=Ds(this._months);t=p((e=p(s/60))/60),s%=60,e%=60;var a=n=p(r/12),o=r%=12,u=i,l=t,d=e,h=s?s.toFixed(3).replace(/\\.?0+$/,\"\"):\"\",c=this.asSeconds();if(!c)return\"P0D\";var f=c<0?\"-\":\"\",m=St(this._months)!==St(c)?\"-\":\"\",_=St(this._days)!==St(c)?\"-\":\"\",y=St(this._milliseconds)!==St(c)?\"-\":\"\";return f+\"P\"+(a?m+a+\"Y\":\"\")+(o?m+o+\"M\":\"\")+(u?_+u+\"D\":\"\")+(l||d||h?\"T\":\"\")+(l?y+l+\"H\":\"\")+(d?y+d+\"M\":\"\")+(h?y+h+\"S\":\"\")}var Yt,Ot;Ot=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),n=t.length>>>0,s=0;s<n;s++)if(s in t&&e.call(this,t[s],s,t))return!0;return!1};var xt=e.momentProperties=[],Tt=!1,bt={};e.suppressDeprecationWarnings=!1,e.deprecationHandler=null;var Pt;Pt=Object.keys?Object.keys:function(e){var t,n=[];for(t in e)u(e,t)&&n.push(t);return n};var Wt={sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},Rt={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},Ct=/\\d{1,2}/,Ft={future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",ss:\"%d seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},Ut={},Nt={},Ht=/(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,Lt=/(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Gt={},Vt={},jt=/\\d/,It=/\\d\\d/,Et=/\\d{3}/,At=/\\d{4}/,zt=/[+-]?\\d{6}/,Zt=/\\d\\d?/,$t=/\\d\\d\\d\\d?/,qt=/\\d\\d\\d\\d\\d\\d?/,Jt=/\\d{1,3}/,Bt=/\\d{1,4}/,Qt=/[+-]?\\d{1,6}/,Xt=/\\d+/,Kt=/[+-]?\\d+/,en=/Z|[+-]\\d\\d:?\\d\\d/gi,tn=/Z|[+-]\\d\\d(?::?\\d\\d)?/gi,nn=/[+-]?\\d+(\\.\\d{1,3})?/,sn=/[0-9]*['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+|[\\u0600-\\u06FF\\/]+(\\s*?[\\u0600-\\u06FF]+){1,2}/i,rn={},an={},on=0,un=1,ln=2,dn=3,hn=4,cn=5,fn=6,mn=7,_n=8;C(\"Y\",0,0,function(){var e=this.year();return e<=9999?\"\"+e:\"+\"+e}),C(0,[\"YY\",2],0,function(){return this.year()%100}),C(0,[\"YYYY\",4],0,\"year\"),C(0,[\"YYYYY\",5],0,\"year\"),C(0,[\"YYYYYY\",6,!0],0,\"year\"),x(\"year\",\"y\"),P(\"year\",1),L(\"Y\",Kt),L(\"YY\",Zt,It),L(\"YYYY\",Bt,At),L(\"YYYYY\",Qt,zt),L(\"YYYYYY\",Qt,zt),I([\"YYYYY\",\"YYYYYY\"],on),I(\"YYYY\",function(t,n){n[on]=2===t.length?e.parseTwoDigitYear(t):w(t)}),I(\"YY\",function(t,n){n[on]=e.parseTwoDigitYear(t)}),I(\"Y\",function(e,t){t[on]=parseInt(e,10)}),e.parseTwoDigitYear=function(e){return w(e)+(w(e)>68?1900:2e3)};var yn,gn=$(\"FullYear\",!0);yn=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t<this.length;++t)if(this[t]===e)return t;return-1},C(\"M\",[\"MM\",2],\"Mo\",function(){return this.month()+1}),C(\"MMM\",0,0,function(e){return this.localeData().monthsShort(this,e)}),C(\"MMMM\",0,0,function(e){return this.localeData().months(this,e)}),x(\"month\",\"M\"),P(\"month\",8),L(\"M\",Zt),L(\"MM\",Zt,It),L(\"MMM\",function(e,t){return t.monthsShortRegex(e)}),L(\"MMMM\",function(e,t){return t.monthsRegex(e)}),I([\"M\",\"MM\"],function(e,t){t[un]=w(e)-1}),I([\"MMM\",\"MMMM\"],function(e,t,n,s){var i=n._locale.monthsParse(e,s,n._strict);null!=i?t[un]=i:c(n).invalidMonth=e});var pn=/D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,wn=\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),vn=\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),Mn=sn,kn=sn;C(\"w\",[\"ww\",2],\"wo\",\"week\"),C(\"W\",[\"WW\",2],\"Wo\",\"isoWeek\"),x(\"week\",\"w\"),x(\"isoWeek\",\"W\"),P(\"week\",5),P(\"isoWeek\",5),L(\"w\",Zt),L(\"ww\",Zt,It),L(\"W\",Zt),L(\"WW\",Zt,It),E([\"w\",\"ww\",\"W\",\"WW\"],function(e,t,n,s){t[s.substr(0,1)]=w(e)});var Sn={dow:0,doy:6};C(\"d\",0,\"do\",\"day\"),C(\"dd\",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),C(\"ddd\",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),C(\"dddd\",0,0,function(e){return this.localeData().weekdays(this,e)}),C(\"e\",0,0,\"weekday\"),C(\"E\",0,0,\"isoWeekday\"),x(\"day\",\"d\"),x(\"weekday\",\"e\"),x(\"isoWeekday\",\"E\"),P(\"day\",11),P(\"weekday\",11),P(\"isoWeekday\",11),L(\"d\",Zt),L(\"e\",Zt),L(\"E\",Zt),L(\"dd\",function(e,t){return t.weekdaysMinRegex(e)}),L(\"ddd\",function(e,t){return t.weekdaysShortRegex(e)}),L(\"dddd\",function(e,t){return t.weekdaysRegex(e)}),E([\"dd\",\"ddd\",\"dddd\"],function(e,t,n,s){var i=n._locale.weekdaysParse(e,s,n._strict);null!=i?t.d=i:c(n).invalidWeekday=e}),E([\"d\",\"e\",\"E\"],function(e,t,n,s){t[s]=w(e)});var Dn=\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),Yn=\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),On=\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),xn=sn,Tn=sn,bn=sn;C(\"H\",[\"HH\",2],0,\"hour\"),C(\"h\",[\"hh\",2],0,ce),C(\"k\",[\"kk\",2],0,function(){return this.hours()||24}),C(\"hmm\",0,0,function(){return\"\"+ce.apply(this)+R(this.minutes(),2)}),C(\"hmmss\",0,0,function(){return\"\"+ce.apply(this)+R(this.minutes(),2)+R(this.seconds(),2)}),C(\"Hmm\",0,0,function(){return\"\"+this.hours()+R(this.minutes(),2)}),C(\"Hmmss\",0,0,function(){return\"\"+this.hours()+R(this.minutes(),2)+R(this.seconds(),2)}),fe(\"a\",!0),fe(\"A\",!1),x(\"hour\",\"h\"),P(\"hour\",13),L(\"a\",me),L(\"A\",me),L(\"H\",Zt),L(\"h\",Zt),L(\"k\",Zt),L(\"HH\",Zt,It),L(\"hh\",Zt,It),L(\"kk\",Zt,It),L(\"hmm\",$t),L(\"hmmss\",qt),L(\"Hmm\",$t),L(\"Hmmss\",qt),I([\"H\",\"HH\"],dn),I([\"k\",\"kk\"],function(e,t,n){var s=w(e);t[dn]=24===s?0:s}),I([\"a\",\"A\"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),I([\"h\",\"hh\"],function(e,t,n){t[dn]=w(e),c(n).bigHour=!0}),I(\"hmm\",function(e,t,n){var s=e.length-2;t[dn]=w(e.substr(0,s)),t[hn]=w(e.substr(s)),c(n).bigHour=!0}),I(\"hmmss\",function(e,t,n){var s=e.length-4,i=e.length-2;t[dn]=w(e.substr(0,s)),t[hn]=w(e.substr(s,2)),t[cn]=w(e.substr(i)),c(n).bigHour=!0}),I(\"Hmm\",function(e,t,n){var s=e.length-2;t[dn]=w(e.substr(0,s)),t[hn]=w(e.substr(s))}),I(\"Hmmss\",function(e,t,n){var s=e.length-4,i=e.length-2;t[dn]=w(e.substr(0,s)),t[hn]=w(e.substr(s,2)),t[cn]=w(e.substr(i))});var Pn,Wn=/[ap]\\.?m?\\.?/i,Rn=$(\"Hours\",!0),Cn={calendar:Wt,longDateFormat:Rt,invalidDate:\"Invalid date\",ordinal:\"%d\",dayOfMonthOrdinalParse:Ct,relativeTime:Ft,months:wn,monthsShort:vn,week:Sn,weekdays:Dn,weekdaysMin:On,weekdaysShort:Yn,meridiemParse:Wn},Fn={},Un={},Nn=/^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,Hn=/^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,Ln=/Z|[+-]\\d\\d(?::?\\d\\d)?/,Gn=[[\"YYYYYY-MM-DD\",/[+-]\\d{6}-\\d\\d-\\d\\d/],[\"YYYY-MM-DD\",/\\d{4}-\\d\\d-\\d\\d/],[\"GGGG-[W]WW-E\",/\\d{4}-W\\d\\d-\\d/],[\"GGGG-[W]WW\",/\\d{4}-W\\d\\d/,!1],[\"YYYY-DDD\",/\\d{4}-\\d{3}/],[\"YYYY-MM\",/\\d{4}-\\d\\d/,!1],[\"YYYYYYMMDD\",/[+-]\\d{10}/],[\"YYYYMMDD\",/\\d{8}/],[\"GGGG[W]WWE\",/\\d{4}W\\d{3}/],[\"GGGG[W]WW\",/\\d{4}W\\d{2}/,!1],[\"YYYYDDD\",/\\d{7}/]],Vn=[[\"HH:mm:ss.SSSS\",/\\d\\d:\\d\\d:\\d\\d\\.\\d+/],[\"HH:mm:ss,SSSS\",/\\d\\d:\\d\\d:\\d\\d,\\d+/],[\"HH:mm:ss\",/\\d\\d:\\d\\d:\\d\\d/],[\"HH:mm\",/\\d\\d:\\d\\d/],[\"HHmmss.SSSS\",/\\d\\d\\d\\d\\d\\d\\.\\d+/],[\"HHmmss,SSSS\",/\\d\\d\\d\\d\\d\\d,\\d+/],[\"HHmmss\",/\\d\\d\\d\\d\\d\\d/],[\"HHmm\",/\\d\\d\\d\\d/],[\"HH\",/\\d\\d/]],jn=/^\\/?Date\\((\\-?\\d+)/i,In=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,En={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};e.createFromInputFallback=k(\"value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.\",function(e){e._d=new Date(e._i+(e._useUTC?\" UTC\":\"\"))}),e.ISO_8601=function(){},e.RFC_2822=function(){};var An=k(\"moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/\",function(){var e=Ie.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:m()}),zn=k(\"moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/\",function(){var e=Ie.apply(null,arguments);return this.isValid()&&e.isValid()?e>this?this:e:m()}),Zn=[\"year\",\"quarter\",\"month\",\"week\",\"day\",\"hour\",\"minute\",\"second\",\"millisecond\"];qe(\"Z\",\":\"),qe(\"ZZ\",\"\"),L(\"Z\",tn),L(\"ZZ\",tn),I([\"Z\",\"ZZ\"],function(e,t,n){n._useUTC=!0,n._tzm=Je(tn,e)});var $n=/([\\+\\-]|\\d\\d)/gi;e.updateOffset=function(){};var qn=/^(\\-|\\+)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/,Jn=/^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;Ke.fn=ze.prototype,Ke.invalid=function(){return Ke(NaN)};var Bn=st(1,\"add\"),Qn=st(-1,\"subtract\");e.defaultFormat=\"YYYY-MM-DDTHH:mm:ssZ\",e.defaultFormatUtc=\"YYYY-MM-DDTHH:mm:ss[Z]\";var Xn=k(\"moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.\",function(e){return void 0===e?this.localeData():this.locale(e)});C(0,[\"gg\",2],0,function(){return this.weekYear()%100}),C(0,[\"GG\",2],0,function(){return this.isoWeekYear()%100}),ut(\"gggg\",\"weekYear\"),ut(\"ggggg\",\"weekYear\"),ut(\"GGGG\",\"isoWeekYear\"),ut(\"GGGGG\",\"isoWeekYear\"),x(\"weekYear\",\"gg\"),x(\"isoWeekYear\",\"GG\"),P(\"weekYear\",1),P(\"isoWeekYear\",1),L(\"G\",Kt),L(\"g\",Kt),L(\"GG\",Zt,It),L(\"gg\",Zt,It),L(\"GGGG\",Bt,At),L(\"gggg\",Bt,At),L(\"GGGGG\",Qt,zt),L(\"ggggg\",Qt,zt),E([\"gggg\",\"ggggg\",\"GGGG\",\"GGGGG\"],function(e,t,n,s){t[s.substr(0,2)]=w(e)}),E([\"gg\",\"GG\"],function(t,n,s,i){n[i]=e.parseTwoDigitYear(t)}),C(\"Q\",0,\"Qo\",\"quarter\"),x(\"quarter\",\"Q\"),P(\"quarter\",7),L(\"Q\",jt),I(\"Q\",function(e,t){t[un]=3*(w(e)-1)}),C(\"D\",[\"DD\",2],\"Do\",\"date\"),x(\"date\",\"D\"),P(\"date\",9),L(\"D\",Zt),L(\"DD\",Zt,It),L(\"Do\",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),I([\"D\",\"DD\"],ln),I(\"Do\",function(e,t){t[ln]=w(e.match(Zt)[0],10)});var Kn=$(\"Date\",!0);C(\"DDD\",[\"DDDD\",3],\"DDDo\",\"dayOfYear\"),x(\"dayOfYear\",\"DDD\"),P(\"dayOfYear\",4),L(\"DDD\",Jt),L(\"DDDD\",Et),I([\"DDD\",\"DDDD\"],function(e,t,n){n._dayOfYear=w(e)}),C(\"m\",[\"mm\",2],0,\"minute\"),x(\"minute\",\"m\"),P(\"minute\",14),L(\"m\",Zt),L(\"mm\",Zt,It),I([\"m\",\"mm\"],hn);var es=$(\"Minutes\",!1);C(\"s\",[\"ss\",2],0,\"second\"),x(\"second\",\"s\"),P(\"second\",15),L(\"s\",Zt),L(\"ss\",Zt,It),I([\"s\",\"ss\"],cn);var ts=$(\"Seconds\",!1);C(\"S\",0,0,function(){return~~(this.millisecond()/100)}),C(0,[\"SS\",2],0,function(){return~~(this.millisecond()/10)}),C(0,[\"SSS\",3],0,\"millisecond\"),C(0,[\"SSSS\",4],0,function(){return 10*this.millisecond()}),C(0,[\"SSSSS\",5],0,function(){return 100*this.millisecond()}),C(0,[\"SSSSSS\",6],0,function(){return 1e3*this.millisecond()}),C(0,[\"SSSSSSS\",7],0,function(){return 1e4*this.millisecond()}),C(0,[\"SSSSSSSS\",8],0,function(){return 1e5*this.millisecond()}),C(0,[\"SSSSSSSSS\",9],0,function(){return 1e6*this.millisecond()}),x(\"millisecond\",\"ms\"),P(\"millisecond\",16),L(\"S\",Jt,jt),L(\"SS\",Jt,It),L(\"SSS\",Jt,Et);var ns;for(ns=\"SSSS\";ns.length<=9;ns+=\"S\")L(ns,Xt);for(ns=\"S\";ns.length<=9;ns+=\"S\")I(ns,function(e,t){t[fn]=w(1e3*(\"0.\"+e))});var ss=$(\"Milliseconds\",!1);C(\"z\",0,0,\"zoneAbbr\"),C(\"zz\",0,0,\"zoneName\");var is=y.prototype;is.add=Bn,is.calendar=function(t,n){var s=t||Ie(),i=Be(s,this).startOf(\"day\"),r=e.calendarFormat(this,i)||\"sameElse\",a=n&&(D(n[r])?n[r].call(this,s):n[r]);return this.format(a||this.localeData().calendar(r,this,Ie(s)))},is.clone=function(){return new y(this)},is.diff=function(e,t,n){var s,i,r;if(!this.isValid())return NaN;if(!(s=Be(e,this)).isValid())return NaN;switch(i=6e4*(s.utcOffset()-this.utcOffset()),t=T(t)){case\"year\":r=rt(this,s)/12;break;case\"month\":r=rt(this,s);break;case\"quarter\":r=rt(this,s)/3;break;case\"second\":r=(this-s)/1e3;break;case\"minute\":r=(this-s)/6e4;break;case\"hour\":r=(this-s)/36e5;break;case\"day\":r=(this-s-i)/864e5;break;case\"week\":r=(this-s-i)/6048e5;break;default:r=this-s}return n?r:p(r)},is.endOf=function(e){return void 0===(e=T(e))||\"millisecond\"===e?this:(\"date\"===e&&(e=\"day\"),this.startOf(e).add(1,\"isoWeek\"===e?\"week\":e).subtract(1,\"ms\"))},is.format=function(t){t||(t=this.isUtc()?e.defaultFormatUtc:e.defaultFormat);var n=N(this,t);return this.localeData().postformat(n)},is.from=function(e,t){return this.isValid()&&(g(e)&&e.isValid()||Ie(e).isValid())?Ke({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},is.fromNow=function(e){return this.from(Ie(),e)},is.to=function(e,t){return this.isValid()&&(g(e)&&e.isValid()||Ie(e).isValid())?Ke({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},is.toNow=function(e){return this.to(Ie(),e)},is.get=function(e){return e=T(e),D(this[e])?this[e]():this},is.invalidAt=function(){return c(this).overflow},is.isAfter=function(e,t){var n=g(e)?e:Ie(e);return!(!this.isValid()||!n.isValid())&&(\"millisecond\"===(t=T(i(t)?\"millisecond\":t))?this.valueOf()>n.valueOf():n.valueOf()<this.clone().startOf(t).valueOf())},is.isBefore=function(e,t){var n=g(e)?e:Ie(e);return!(!this.isValid()||!n.isValid())&&(\"millisecond\"===(t=T(i(t)?\"millisecond\":t))?this.valueOf()<n.valueOf():this.clone().endOf(t).valueOf()<n.valueOf())},is.isBetween=function(e,t,n,s){return(\"(\"===(s=s||\"()\")[0]?this.isAfter(e,n):!this.isBefore(e,n))&&(\")\"===s[1]?this.isBefore(t,n):!this.isAfter(t,n))},is.isSame=function(e,t){var n,s=g(e)?e:Ie(e);return!(!this.isValid()||!s.isValid())&&(\"millisecond\"===(t=T(t||\"millisecond\"))?this.valueOf()===s.valueOf():(n=s.valueOf(),this.clone().startOf(t).valueOf()<=n&&n<=this.clone().endOf(t).valueOf()))},is.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)},is.isSameOrBefore=function(e,t){return this.isSame(e,t)||this.isBefore(e,t)},is.isValid=function(){return f(this)},is.lang=Xn,is.locale=at,is.localeData=ot,is.max=zn,is.min=An,is.parsingFlags=function(){return l({},c(this))},is.set=function(e,t){if(\"object\"==typeof e)for(var n=W(e=b(e)),s=0;s<n.length;s++)this[n[s].unit](e[n[s].unit]);else if(e=T(e),D(this[e]))return this[e](t);return this},is.startOf=function(e){switch(e=T(e)){case\"year\":this.month(0);case\"quarter\":case\"month\":this.date(1);case\"week\":case\"isoWeek\":case\"day\":case\"date\":this.hours(0);case\"hour\":this.minutes(0);case\"minute\":this.seconds(0);case\"second\":this.milliseconds(0)}return\"week\"===e&&this.weekday(0),\"isoWeek\"===e&&this.isoWeekday(1),\"quarter\"===e&&this.month(3*Math.floor(this.month()/3)),this},is.subtract=Qn,is.toArray=function(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]},is.toObject=function(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}},is.toDate=function(){return new Date(this.valueOf())},is.toISOString=function(){if(!this.isValid())return null;var e=this.clone().utc();return e.year()<0||e.year()>9999?N(e,\"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]\"):D(Date.prototype.toISOString)?this.toDate().toISOString():N(e,\"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]\")},is.inspect=function(){if(!this.isValid())return\"moment.invalid(/* \"+this._i+\" */)\";var e=\"moment\",t=\"\";this.isLocal()||(e=0===this.utcOffset()?\"moment.utc\":\"moment.parseZone\",t=\"Z\");var n=\"[\"+e+'(\"]',s=0<=this.year()&&this.year()<=9999?\"YYYY\":\"YYYYYY\",i=t+'[\")]';return this.format(n+s+\"-MM-DD[T]HH:mm:ss.SSS\"+i)},is.toJSON=function(){return this.isValid()?this.toISOString():null},is.toString=function(){return this.clone().locale(\"en\").format(\"ddd MMM DD YYYY HH:mm:ss [GMT]ZZ\")},is.unix=function(){return Math.floor(this.valueOf()/1e3)},is.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},is.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},is.year=gn,is.isLeapYear=function(){return Z(this.year())},is.weekYear=function(e){return lt.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},is.isoWeekYear=function(e){return lt.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},is.quarter=is.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},is.month=ee,is.daysInMonth=function(){return Q(this.year(),this.month())},is.week=is.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),\"d\")},is.isoWeek=is.isoWeeks=function(e){var t=ae(this,1,4).week;return null==e?t:this.add(7*(e-t),\"d\")},is.weeksInYear=function(){var e=this.localeData()._week;return oe(this.year(),e.dow,e.doy)},is.isoWeeksInYear=function(){return oe(this.year(),1,4)},is.date=Kn,is.day=is.days=function(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=ue(e,this.localeData()),this.add(e-t,\"d\")):t},is.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,\"d\")},is.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=le(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7},is.dayOfYear=function(e){var t=Math.round((this.clone().startOf(\"day\")-this.clone().startOf(\"year\"))/864e5)+1;return null==e?t:this.add(e-t,\"d\")},is.hour=is.hours=Rn,is.minute=is.minutes=es,is.second=is.seconds=ts,is.millisecond=is.milliseconds=ss,is.utcOffset=function(t,n,s){var i,r=this._offset||0;if(!this.isValid())return null!=t?this:NaN;if(null!=t){if(\"string\"==typeof t){if(null===(t=Je(tn,t)))return this}else Math.abs(t)<16&&!s&&(t*=60);return!this._isUTC&&n&&(i=Qe(this)),this._offset=t,this._isUTC=!0,null!=i&&this.add(i,\"m\"),r!==t&&(!n||this._changeInProgress?it(this,Ke(t-r,\"m\"),1,!1):this._changeInProgress||(this._changeInProgress=!0,e.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?r:Qe(this)},is.utc=function(e){return this.utcOffset(0,e)},is.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Qe(this),\"m\")),this},is.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if(\"string\"==typeof this._i){var e=Je(en,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this},is.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?Ie(e).utcOffset():0,(this.utcOffset()-e)%60==0)},is.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},is.isLocal=function(){return!!this.isValid()&&!this._isUTC},is.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},is.isUtc=Xe,is.isUTC=Xe,is.zoneAbbr=function(){return this._isUTC?\"UTC\":\"\"},is.zoneName=function(){return this._isUTC?\"Coordinated Universal Time\":\"\"},is.dates=k(\"dates accessor is deprecated. Use date instead.\",Kn),is.months=k(\"months accessor is deprecated. Use month instead\",ee),is.years=k(\"years accessor is deprecated. Use year instead\",gn),is.zone=k(\"moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/\",function(e,t){return null!=e?(\"string\"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}),is.isDSTShifted=k(\"isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information\",function(){if(!i(this._isDSTShifted))return this._isDSTShifted;var e={};if(_(e,this),(e=Ge(e))._a){var t=e._isUTC?d(e._a):Ie(e._a);this._isDSTShifted=this.isValid()&&v(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted});var rs=O.prototype;rs.calendar=function(e,t,n){var s=this._calendar[e]||this._calendar.sameElse;return D(s)?s.call(t,n):s},rs.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.replace(/MMMM|MM|DD|dddd/g,function(e){return e.slice(1)}),this._longDateFormat[e])},rs.invalidDate=function(){return this._invalidDate},rs.ordinal=function(e){return this._ordinal.replace(\"%d\",e)},rs.preparse=ht,rs.postformat=ht,rs.relativeTime=function(e,t,n,s){var i=this._relativeTime[n];return D(i)?i(e,t,n,s):i.replace(/%d/i,e)},rs.pastFuture=function(e,t){var n=this._relativeTime[e>0?\"future\":\"past\"];return D(n)?n(t):n.replace(/%s/i,t)},rs.set=function(e){var t,n;for(n in e)D(t=e[n])?this[n]=t:this[\"_\"+n]=t;this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+\"|\"+/\\d{1,2}/.source)},rs.months=function(e,n){return e?t(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||pn).test(n)?\"format\":\"standalone\"][e.month()]:t(this._months)?this._months:this._months.standalone},rs.monthsShort=function(e,n){return e?t(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[pn.test(n)?\"format\":\"standalone\"][e.month()]:t(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},rs.monthsParse=function(e,t,n){var s,i,r;if(this._monthsParseExact)return X.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),s=0;s<12;s++){if(i=d([2e3,s]),n&&!this._longMonthsParse[s]&&(this._longMonthsParse[s]=new RegExp(\"^\"+this.months(i,\"\").replace(\".\",\"\")+\"$\",\"i\"),this._shortMonthsParse[s]=new RegExp(\"^\"+this.monthsShort(i,\"\").replace(\".\",\"\")+\"$\",\"i\")),n||this._monthsParse[s]||(r=\"^\"+this.months(i,\"\")+\"|^\"+this.monthsShort(i,\"\"),this._monthsParse[s]=new RegExp(r.replace(\".\",\"\"),\"i\")),n&&\"MMMM\"===t&&this._longMonthsParse[s].test(e))return s;if(n&&\"MMM\"===t&&this._shortMonthsParse[s].test(e))return s;if(!n&&this._monthsParse[s].test(e))return s}},rs.monthsRegex=function(e){return this._monthsParseExact?(u(this,\"_monthsRegex\")||te.call(this),e?this._monthsStrictRegex:this._monthsRegex):(u(this,\"_monthsRegex\")||(this._monthsRegex=kn),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},rs.monthsShortRegex=function(e){return this._monthsParseExact?(u(this,\"_monthsRegex\")||te.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(u(this,\"_monthsShortRegex\")||(this._monthsShortRegex=Mn),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},rs.week=function(e){return ae(e,this._week.dow,this._week.doy).week},rs.firstDayOfYear=function(){return this._week.doy},rs.firstDayOfWeek=function(){return this._week.dow},rs.weekdays=function(e,n){return e?t(this._weekdays)?this._weekdays[e.day()]:this._weekdays[this._weekdays.isFormat.test(n)?\"format\":\"standalone\"][e.day()]:t(this._weekdays)?this._weekdays:this._weekdays.standalone},rs.weekdaysMin=function(e){return e?this._weekdaysMin[e.day()]:this._weekdaysMin},rs.weekdaysShort=function(e){return e?this._weekdaysShort[e.day()]:this._weekdaysShort},rs.weekdaysParse=function(e,t,n){var s,i,r;if(this._weekdaysParseExact)return de.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),s=0;s<7;s++){if(i=d([2e3,1]).day(s),n&&!this._fullWeekdaysParse[s]&&(this._fullWeekdaysParse[s]=new RegExp(\"^\"+this.weekdays(i,\"\").replace(\".\",\".?\")+\"$\",\"i\"),this._shortWeekdaysParse[s]=new RegExp(\"^\"+this.weekdaysShort(i,\"\").replace(\".\",\".?\")+\"$\",\"i\"),this._minWeekdaysParse[s]=new RegExp(\"^\"+this.weekdaysMin(i,\"\").replace(\".\",\".?\")+\"$\",\"i\")),this._weekdaysParse[s]||(r=\"^\"+this.weekdays(i,\"\")+\"|^\"+this.weekdaysShort(i,\"\")+\"|^\"+this.weekdaysMin(i,\"\"),this._weekdaysParse[s]=new RegExp(r.replace(\".\",\"\"),\"i\")),n&&\"dddd\"===t&&this._fullWeekdaysParse[s].test(e))return s;if(n&&\"ddd\"===t&&this._shortWeekdaysParse[s].test(e))return s;if(n&&\"dd\"===t&&this._minWeekdaysParse[s].test(e))return s;if(!n&&this._weekdaysParse[s].test(e))return s}},rs.weekdaysRegex=function(e){return this._weekdaysParseExact?(u(this,\"_weekdaysRegex\")||he.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(u(this,\"_weekdaysRegex\")||(this._weekdaysRegex=xn),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},rs.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(u(this,\"_weekdaysRegex\")||he.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(u(this,\"_weekdaysShortRegex\")||(this._weekdaysShortRegex=Tn),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},rs.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(u(this,\"_weekdaysRegex\")||he.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(u(this,\"_weekdaysMinRegex\")||(this._weekdaysMinRegex=bn),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},rs.isPM=function(e){return\"p\"===(e+\"\").toLowerCase().charAt(0)},rs.meridiem=function(e,t,n){return e>11?n?\"pm\":\"PM\":n?\"am\":\"AM\"},pe(\"en\",{dayOfMonthOrdinalParse:/\\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===w(e%100/10)?\"th\":1===t?\"st\":2===t?\"nd\":3===t?\"rd\":\"th\")}}),e.lang=k(\"moment.lang is deprecated. Use moment.locale instead.\",pe),e.langData=k(\"moment.langData is deprecated. Use moment.localeData instead.\",ve);var as=Math.abs,os=wt(\"ms\"),us=wt(\"s\"),ls=wt(\"m\"),ds=wt(\"h\"),hs=wt(\"d\"),cs=wt(\"w\"),fs=wt(\"M\"),ms=wt(\"y\"),_s=vt(\"milliseconds\"),ys=vt(\"seconds\"),gs=vt(\"minutes\"),ps=vt(\"hours\"),ws=vt(\"days\"),vs=vt(\"months\"),Ms=vt(\"years\"),ks=Math.round,Ss={ss:44,s:45,m:45,h:22,d:26,M:11},Ds=Math.abs,Ys=ze.prototype;return Ys.isValid=function(){return this._isValid},Ys.abs=function(){var e=this._data;return this._milliseconds=as(this._milliseconds),this._days=as(this._days),this._months=as(this._months),e.milliseconds=as(e.milliseconds),e.seconds=as(e.seconds),e.minutes=as(e.minutes),e.hours=as(e.hours),e.months=as(e.months),e.years=as(e.years),this},Ys.add=function(e,t){return _t(this,e,t,1)},Ys.subtract=function(e,t){return _t(this,e,t,-1)},Ys.as=function(e){if(!this.isValid())return NaN;var t,n,s=this._milliseconds;if(\"month\"===(e=T(e))||\"year\"===e)return t=this._days+s/864e5,n=this._months+gt(t),\"month\"===e?n:n/12;switch(t=this._days+Math.round(pt(this._months)),e){case\"week\":return t/7+s/6048e5;case\"day\":return t+s/864e5;case\"hour\":return 24*t+s/36e5;case\"minute\":return 1440*t+s/6e4;case\"second\":return 86400*t+s/1e3;case\"millisecond\":return Math.floor(864e5*t)+s;default:throw new Error(\"Unknown unit \"+e)}},Ys.asMilliseconds=os,Ys.asSeconds=us,Ys.asMinutes=ls,Ys.asHours=ds,Ys.asDays=hs,Ys.asWeeks=cs,Ys.asMonths=fs,Ys.asYears=ms,Ys.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*w(this._months/12):NaN},Ys._bubble=function(){var e,t,n,s,i,r=this._milliseconds,a=this._days,o=this._months,u=this._data;return r>=0&&a>=0&&o>=0||r<=0&&a<=0&&o<=0||(r+=864e5*yt(pt(o)+a),a=0,o=0),u.milliseconds=r%1e3,e=p(r/1e3),u.seconds=e%60,t=p(e/60),u.minutes=t%60,n=p(t/60),u.hours=n%24,a+=p(n/24),i=p(gt(a)),o+=i,a-=yt(pt(i)),s=p(o/12),o%=12,u.days=a,u.months=o,u.years=s,this},Ys.clone=function(){return Ke(this)},Ys.get=function(e){return e=T(e),this.isValid()?this[e+\"s\"]():NaN},Ys.milliseconds=_s,Ys.seconds=ys,Ys.minutes=gs,Ys.hours=ps,Ys.days=ws,Ys.weeks=function(){return p(this.days()/7)},Ys.months=vs,Ys.years=Ms,Ys.humanize=function(e){if(!this.isValid())return this.localeData().invalidDate();var t=this.localeData(),n=kt(this,!e,t);return e&&(n=t.pastFuture(+this,n)),t.postformat(n)},Ys.toISOString=Dt,Ys.toString=Dt,Ys.toJSON=Dt,Ys.locale=at,Ys.localeData=ot,Ys.toIsoString=k(\"toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)\",Dt),Ys.lang=Xn,C(\"X\",0,0,\"unix\"),C(\"x\",0,0,\"valueOf\"),L(\"x\",Kt),L(\"X\",nn),I(\"X\",function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))}),I(\"x\",function(e,t,n){n._d=new Date(w(e))}),e.version=\"2.19.0\",function(e){Yt=e}(Ie),e.fn=is,e.min=function(){return Ee(\"isBefore\",[].slice.call(arguments,0))},e.max=function(){return Ee(\"isAfter\",[].slice.call(arguments,0))},e.now=function(){return Date.now?Date.now():+new Date},e.utc=d,e.unix=function(e){return Ie(1e3*e)},e.months=function(e,t){return ft(e,t,\"months\")},e.isDate=a,e.locale=pe,e.invalid=m,e.duration=Ke,e.isMoment=g,e.weekdays=function(e,t,n){return mt(e,t,n,\"weekdays\")},e.parseZone=function(){return Ie.apply(null,arguments).parseZone()},e.localeData=ve,e.isDuration=Ze,e.monthsShort=function(e,t){return ft(e,t,\"monthsShort\")},e.weekdaysMin=function(e,t,n){return mt(e,t,n,\"weekdaysMin\")},e.defineLocale=we,e.updateLocale=function(e,t){if(null!=t){var n,s=Cn;null!=Fn[e]&&(s=Fn[e]._config),(n=new O(t=Y(s,t))).parentLocale=Fn[e],Fn[e]=n,pe(e)}else null!=Fn[e]&&(null!=Fn[e].parentLocale?Fn[e]=Fn[e].parentLocale:null!=Fn[e]&&delete Fn[e]);return Fn[e]},e.locales=function(){return Pt(Fn)},e.weekdaysShort=function(e,t,n){return mt(e,t,n,\"weekdaysShort\")},e.normalizeUnits=T,e.relativeTimeRounding=function(e){return void 0===e?ks:\"function\"==typeof e&&(ks=e,!0)},e.relativeTimeThreshold=function(e,t){return void 0!==Ss[e]&&(void 0===t?Ss[e]:(Ss[e]=t,\"s\"===e&&(Ss.ss=t-1),!0))},e.calendarFormat=function(e,t){var n=e.diff(t,\"days\",!0);return n<-6?\"sameElse\":n<-1?\"lastWeek\":n<0?\"lastDay\":n<1?\"sameDay\":n<2?\"nextDay\":n<7?\"nextWeek\":\"sameElse\"},e.prototype=is,e});"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"components\",\n  \"version\": \"1.0.0\",\n  \"description\": \"Components\",\n  \"main\": \"generate_doc.js\",\n  \"dependencies\": {\n    \"node-minify\": \"^2.0.4\",\n    \"wrench\": \"^1.5.9\"\n  },\n  \"devDependencies\": {},\n  \"scripts\": {\n    \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/MobileUI/components.git\"\n  },\n  \"author\": \"\",\n  \"license\": \"ISC\",\n  \"bugs\": {\n    \"url\": \"https://github.com/MobileUI/components/issues\"\n  },\n  \"homepage\": \"https://github.com/MobileUI/components#readme\"\n}\n"
  },
  {
    "path": "page/component.json",
    "content": "{\n  \"name\":\"page\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": []\n}\n"
  },
  {
    "path": "page/contact.html",
    "content": "<div class=\"page has-header\">\n  <div class=\"header blue\">\n    <div class=\"left\">\n      <button class=\"icon ion-ios-arrow-back\" onclick=\"backPage()\"></button>\n    </div>\n    <h1 class=\"title align-center\">Contact</h1>\n  </div>\n  <div class=\"list\">\n    <div class=\"item\">\n      <label>NAME</label>\n      <input id=\"name\" type=\"text\" value=\"Jeanette Fletcher\" readonly>\n    </div>\n  </div>\n</div>\n"
  },
  {
    "path": "page/contact.js",
    "content": "function functionOpenContact(params){\n  document.getElementById('name').value = params.name;\n}\n"
  },
  {
    "path": "page/contacts.html",
    "content": "<div class=\"page has-header\">\n  <div class=\"header blue\">\n    <div class=\"left\">\n      <button class=\"icon ion-ios-arrow-back\" onclick=\"backPage()\"></button>\n    </div>\n    <h1 class=\"title align-center\">Contacts</h1>\n  </div>\n  <div class=\"list\">\n    <div class=\"item\" onclick=\"openPage('contact', {name:'Jeanette Fletcher'}, functionOpenContact)\">\n      <img class=\"avatar left\" src=\"../assets/img/33.jpg\">\n      <h2>Jeanette Fletcher</h2>\n      <p>jeanette.fletcher15@example.com</p>\n    </div>\n    <div class=\"item\" onclick=\"openPage('contact', {name:'Jack Oliver'}, functionOpenContact)\">\n      <img class=\"avatar left\" src=\"../assets/img/53.jpg\">\n      <h2>Jack Oliver</h2>\n      <p>jack.oliver@example.com</p>\n    </div>\n    <div class=\"item\" onclick=\"openPage('contact', {name:'Carter hudson'}, functionOpenContact)\">\n      <img class=\"avatar left\" src=\"../assets/img/96.jpg\">\n      <h2>Carter hudson</h2>\n      <p>carter.hudson17@example.com</p>\n    </div>\n  </div>\n</div>\n"
  },
  {
    "path": "page/index.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title></title>\n    <link href=\"https://fonts.googleapis.com/css?family=Dosis|Raleway:400,700|Roboto:300,400,900,\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n    <link rel=\"stylesheet\" href=\"../base/reset.css\">\n    <link rel=\"stylesheet\" href=\"../base/mobileui.css\">\n    <link rel=\"stylesheet\" href=\"../base/colors.css\">\n    <link rel=\"stylesheet\" href=\"../base/icons.css\">\n    <link rel=\"stylesheet\" href=\"../header/style.css\">\n    <link rel=\"stylesheet\" href=\"../list/style.css\">\n    <link rel=\"stylesheet\" href=\"../button/style.css\">\n    <link rel=\"stylesheet\" href=\"../cover/style.css\">\n    <link rel=\"stylesheet\" href=\"../input/style.css\">\n    <link rel=\"stylesheet\" href=\"style.css\">\n    <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n    <style>\n      .content-land { margin-left:50px}\n    </style>\n    <script type=\"text/javascript\" src=\"../base/base.js\"></script>\n    <script type=\"text/javascript\" src=\"script.js\"></script>\n    <script type=\"text/javascript\" src=\"contact.js\"></script>\n  </head>\n  <body class=\"content-land\">\n    <!-- BEGIN -->\n    <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">Page</h2>\n    <p>\n      Navigation is how users move between different pages in your app. MobileUI’s navigation follows standard native navigation concepts, like those in iOS.\n    </p>\n    <p>\n      For use this component you need install with command:\n    </p>\n    <pre>mobileui install page</pre>\n    <!-- _DOC_GENERATE_CSS_DOC -->\n    <p>\n      The operation of this component is very simple, to open a new page just call the function <code>openPage('NAME_FILE_HTML')</code> and to go\n      back just call the function <code>backPage()</code>.\n    </p>\n    <p>\n      If you need disabled BackButton in your device, just define <code>window.disabledBackButton=true</code>.\n    </p>\n    <p>\n      If you need disabled effect when the page is openning in your device, just define <code>window.disabledOpenPageEffect=true</code>.\n    </p>\n<textarea class=\"bind-code\" mode=\"text/html\" header-absolute=\"true\" replace=\"body,div|grey-200,grey-200 body\" height-preview=\"400px\" border=\"true\" multiplatform=\"true\">\n<body class=\"padding grey-200 has-header\">\n  <div class=\"header blue\">\n    <h1 class=\"title align-center\">Home</h1>\n  </div>\n  <p>Using page component!</p>\n  <button class=\"green\" onclick=\"openPage('contacts')\">Go to a new Page</button>\n</body></textarea>\n    <p>For the example above we have the <code>contacts</code> page:</p>\n<textarea class=\"bind-just-code\" mode=\"text/html\">\n<div class=\"page\">\n  <div class=\"header blue\">\n    <div class=\"left\">\n      <button class=\"icon ion-ios-arrow-back\" onclick=\"backPage()\"></button>\n    </div>\n    <h1 class=\"title align-center\">Contacts</h1>\n  </div>\n  <div class=\"content has-header\">\n    <div class=\"list\">\n      <div class=\"item\" onclick=\"openPage('contact', {name:'Jeanette Fletcher'}, functionOpenContact)\">\n        <img class=\"avatar left\" src=\"../assets/img/33.jpg\">\n        <h2>Jeanette Fletcher</h2>\n        <p>jeanette.fletcher15@example.com</p>\n      </div>\n      <div class=\"item\" onclick=\"openPage('contact', {name:'Jack Oliver'}, functionOpenContact)\">\n        <img class=\"avatar left\" src=\"../assets/img/53.jpg\">\n        <h2>Jack Oliver</h2>\n        <p>jack.oliver@example.com</p>\n      </div>\n      <div class=\"item\" onclick=\"openPage('contact', {name:'Carter hudson'}, functionOpenContact)\">\n        <img class=\"avatar left\" src=\"../assets/img/96.jpg\">\n        <h2>Carter hudson</h2>\n        <p>carter.hudson17@example.com</p>\n      </div>\n    </div>\n  </div>\n</div></textarea>\n    <p>When you click on an item in the list the <code>contact</code> page appears:</p>\n<textarea class=\"bind-just-code\" mode=\"text/html\">\n<div class=\"page\">\n  <div class=\"header blue\">\n    <div class=\"left\">\n      <button class=\"icon ion-ios-arrow-back\" onclick=\"backPage()\"></button>\n    </div>\n    <h1 class=\"title align-center\">Contact</h1>\n  </div>\n  <div class=\"content has-header\">\n    <div class=\"list\">\n      <div class=\"item\">\n        <label>NAME</label>\n        <input id=\"name\" type=\"text\" value=\"Jeanette Fletcher\" readonly>\n      </div>\n    </div>\n  </div>\n</div></textarea>\n    <p>And when opening the <code>contact</code> page the function <code>functionOpenContact</code> will be executed:</p>\n<textarea class=\"bind-just-code\" mode=\"text/javascript\">\nfunction functionOpenContact(params){\n  document.getElementById('name').value = params.name;\n}</textarea>\n    <p>For advanced mode you can listener the event <code>openPage</code> and <code>closePage</code>.</p>\n<textarea class=\"bind-just-code\" mode=\"text/javascript\">\ndocument.addEventListener('openPage', function(e){\n//It does something when the page is opened\n//You can access name of page in: e.detail.page\n})\n\ndocument.addEventListener('backPage', function(e){\n//It does something when the page is closed.\n//You can access name of page in: e.detail.page\n})</textarea>\n    <!-- DONE -->\n    <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n    <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n    <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n    <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.2/mode/javascript/javascript.min.js\"></script>\n    <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "page/script.js",
    "content": "window.PAGE={handePage:100};\ndocument.addEventListener(\"deviceready\", function(){\n  document.addEventListener(\"backbutton\", function(e){\n    if(window.disabledBackButton) {\n      return e.preventDefault();\n    }\n    var pages = document.getElementsByClassName('box-block');\n    if(pages.length){\n      e.preventDefault();\n      window.backPage(pages[pages.length-1].id);\n    } else {\n      navigator.app.exitApp();\n    }\n  }, false);\n}, false);\nwindow.dispatch = function(fn, args) {\n    fn = (typeof fn == \"function\") ? fn : window[fn];\n    return fn.apply(this, args || []);\n}\nwindow.openPage = function(p, params, callback){\n  var showPageEffect = function(){\n    window.PAGE.handePage++\n    var firstStyle = 'z-index:'+window.PAGE.handePage\n    var secondStyle = ';transform: translateY(0px);will-change: transform, -webkit-transform, opacity;transition-duration: 280ms;transition-timing-function: cubic-bezier(0.36,0.66,0.04,1);'\n    if(SO.code === 2){\n      secondStyle = ';transform: translateX(0px);transition-duration: 280ms;'\n    }\n    if(window.disabledOpenPageEffect) {\n      secondStyle = ';opacity: 1;top: 0;'\n    }\n    var newStyle = document.getElementById(p).getElementsByClassName('page')[0].getAttribute('style')\n    if(newStyle) {\n      newStyle += ' '+firstStyle + secondStyle\n    } else {\n      newStyle = firstStyle + secondStyle\n    }\n    document.getElementById(p).getElementsByClassName('page')[0].setAttribute(\"style\", newStyle);\n    if(callback) {\n      window.dispatch(callback, [params]);\n    }\n    var newClass = document.getElementById(p).getElementsByClassName('page')[0].getAttribute('class')\n    newClass += ' show'\n    var validOpenPage = function(){\n      setTimeout(function(){\n        if(document.getElementById(p) && document.getElementById(p).querySelectorAll('.page').length){\n          showPageBind();\n        } else {\n          validOpenPage();\n        }\n      },10);\n    }\n    validOpenPage();\n    var customEvent = new CustomEvent(\"openPage\",{ \"detail\": {page:p}});\n    document.dispatchEvent(customEvent);\n    var showPageBind = function(){\n      setTimeout(function(){\n        document.getElementById(p).getElementsByClassName('page')[0].setAttribute('class',newClass)\n        setTimeout(function(){\n          var style = document.getElementById(p).getElementsByClassName('page')[0].getAttribute('style')\n          style = style.replace(secondStyle,'')\n          document.getElementById(p).getElementsByClassName('page')[0].setAttribute('style',style)\n        },280)\n      }, 100);\n    };\n  }\n  if(arguments.length===2) {\n    callback = params\n  }\n  if(p.indexOf('.html') < 0){\n    p =p+'.html';\n  }\n  //check if page is openned.\n  if(document.getElementById(p)){\n    var pages = document.getElementsByClassName('box-block');\n    if(pages[pages.length-1].id === document.getElementById(p).id){\n      return false;\n    }\n    document.getElementById(p).parentNode.removeChild(document.getElementById(p));\n  }\n  var xhttp = new XMLHttpRequest();\n  xhttp.onload = function() {\n    if (this.readyState == 4) {\n      var page = this.responseText;\n      page = page.replace('backPage()','backPage(\\''+p+'\\')');\n      var body = document.getElementsByTagName('body')[0]\n      if(document.getElementsByClassName('body').length){\n        body = document.getElementsByClassName('body')[0]\n      }\n      var div = document.createElement('div')\n      div.setAttribute('class','box-block')\n      div.setAttribute('id',p)\n      div.innerHTML = page\n      body.appendChild(div);\n      showPageEffect();\n    }\n  };\n  xhttp.open(\"GET\", p + '?cache='+new Date().getTime(), true);\n  document.dispatchEvent(new Event('firedCloseMenu'));\n  xhttp.send();\n}\nwindow.backPage = function(p){\n  var page = \"\"\n  if(!p) {\n    var pages = document.querySelectorAll('.page.show')\n    var elementFind = { zIndex:-1 }\n    for (var i = 0; i < pages.length; i++) {\n      var zIndexNow = Number(pages[i].style['zIndex'])\n      if(elementFind.zIndex<zIndexNow) {\n        elementFind.zIndex=zIndexNow\n        elementFind.element = pages[i]\n      }\n    }\n    if(elementFind.zIndex) {\n      p = elementFind.element.parentElement.id\n    }\n  } \n  var page = document.getElementById(p).getElementsByClassName('page')[0];\n  var style = ';transform: translateY(0px);will-change: transform, -webkit-transform, opacity;transition-duration: 280ms;'\n  if(window.disabledOpenPageEffect) {\n    style = ''\n  }\n  var newStyle = document.getElementById(p).getElementsByClassName('page')[0].getAttribute('style')\n  if(newStyle) {\n    newStyle += ' '+style\n  } else {\n    newStyle = style\n  }\n  document.getElementById(p).getElementsByClassName('page')[0].setAttribute(\"style\", newStyle);\n  var newClass = document.getElementById(p).getElementsByClassName('page')[0].getAttribute('class')\n  newClass += newClass.replace('show','')\n  document.getElementById(p).getElementsByClassName('page')[0].setAttribute('class',newClass);\n  var customEvent = new CustomEvent(\"backPage\",{ \"detail\": {page:p}});\n  document.dispatchEvent(customEvent);\n  setTimeout(function(){\n    var elm = document.getElementById(p);\n    elm.parentElement.removeChild(elm);\n  }, !window.disabledOpenPageEffect ? 280 : 0)\n}\n"
  },
  {
    "path": "page/style.css",
    "content": "/*You need add this class in you new page.*/\n.page {\n  position: absolute;\n  top: 60px;\n  left: 0;\n  display: block;\n  width: 100%;\n  height: 100%;\n  opacity: 0.01;\n  contain: strict;\n  background-color: #fff;\n  overflow: auto;\n}\n.platform-ios .page {\n  top: 0;\n  left: 100%;\n  opacity: 1;\n}\n.page.show {\n  opacity: 1;\n  top: 0;\n}\n.platform-ios .page.show {\n  opacity: 1;\n  top: 0;\n  left: 0;\n}\n.box-block {\n}\n"
  },
  {
    "path": "popover/component.json",
    "content": "{\n  \"name\":\"popover\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": [\n    \"base\",\n    \"list\"\n  ]\n}\n"
  },
  {
    "path": "popover/index.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <title></title>\n  <link href=\"https://fonts.googleapis.com/css?family=Dosis|Raleway:400,700|Roboto:300,400,900,\" rel=\"stylesheet\">\n  <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n  <link rel=\"stylesheet\" href=\"../base/reset.css\">\n  <link rel=\"stylesheet\" href=\"../base/mobileui.css\">\n  <link rel=\"stylesheet\" href=\"../base/colors.css\">\n  <link rel=\"stylesheet\" href=\"../base/icons.css\">\n  <link rel=\"stylesheet\" href=\"../header/style.css\">\n  <link rel=\"stylesheet\" href=\"../button/style.css\">\n  <link rel=\"stylesheet\" href=\"../list/style.css\">\n  <link rel=\"stylesheet\" href=\"../cover/style.css\">\n  <link rel=\"stylesheet\" href=\"style.css\">\n  <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n  <style>\n    .content {\n      margin-left: 50px\n    }\n  </style>\n  <script type=\"text/javascript\" src=\"../base/base.js\"></script>\n  <script type=\"text/javascript\" src=\"script.js\"></script>\n</head>\n<body class=\"content\">\n  <!-- BEGIN -->\n  <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">Popover</h2>\n  <p>\n    The Popover is a view that floats above an app’s content. Popovers provide an easy way to present or gather information from\n    the user and are commonly used in the following situations: Show more info about the current view ,select a commonly used\n    tool or configuration and present a list of actions to perform inside one of your views.\n  </p>\n  <div class=\"dependency tooltip\">\n    <strong>Dependency:</strong> <code>base</code> and <code>list</code>.\n    <span class=\"tooltiptext\">The dependencies will be installed together with this module</span>\n  </div>\n  <p>\n    To use this component you need install with the command:\n  </p>\n  <pre>mobileui install popover</pre>\n  <!-- _DOC_GENERATE_CSS_DOC -->\n  <p>\n    Your popover need have <code>id</code> and for you open popover, just call function <code>openPopover('ID_YOUR_POPOVER')</code>.\n  </p>\n  <p>See example:</p>\n<textarea class=\"bind-code\" mode=\"text/html\" header-absolute=\"true\" replace=\"body,div|grey-200,grey-200 body|openPopover,openPopoverLand\" height-preview=\"400px\" border=\"true\" multiplatform=\"true\">\n<body class=\"padding grey-200 has-header\">\n\n  <div class=\"popover\" id=\"popover1\">\n    <div class=\"list\">\n      <div class=\"item\"><h1>Action popover #1</h1></div>\n      <div class=\"item\"><h1>Action popover #2</h1></div>\n      <div class=\"item\"><h1>Action popover #3</h1></div>\n      <div class=\"item\"><h1 class=\"text-grey\">Action popover #4</h1></div>\n    </div>\n  </div>\n\n  <div class=\"header purple\">\n    <h1>App Popover</h1>\n    <div class=\"right\">\n      <button class=\"icon ion-android-more-vertical\" onclick=\"openPopover('popover1')\"></button>\n    </div>\n  </div>\n</body></textarea>\n<p>If you need make bind some event after popover open just listener event:</p>\n<textarea class=\"bind-just-code\" mode=\"text/javascript\">\ndocument.addEventListener('popoverOpened', function(e){\n  //TODO\n})\n</textarea>\n\n  <!-- DONE -->\n  <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n  <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n  <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n  <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "popover/script.js",
    "content": "window.openPopover = function (p) {\n  var button = event.target\n  var rect = button.getBoundingClientRect()\n  var name = p\n  var p = document.getElementById(p)\n  var e = document.createElement('div')\n  e.className = 'backdrop backdrop-popover'\n  p.parentNode.appendChild(e)\n  e.addEventListener('click', function (evt) {\n    window.closePopover(name)\n  })\n  p.addEventListener('click', function (evt) {\n    window.closePopover(name)\n  })\n  var marginRight = document.body.offsetWidth - rect.left\n  var diff = document.body.offsetWidth - marginRight\n  marginRight = marginRight - rect.width\n  if (diff > 250) {\n    p.style += ';top: 110%;right: ' + marginRight + 'px;transform-origin: right top 0px;transform: scale(1);'\n  } else {\n    p.style += ';top: 110%;left: ' + diff + 'px;transform-origin: right top 0px;transform: scale(1);'\n  }\n  p.classList.add('show')\n  if (SO.code === 2) {\n    p.style.top = (rect.top + rect.height) + 'px'\n    var divArrow = document.createElement('div')\n    divArrow.classList.add('popover-arrow')\n    p.parentNode.appendChild(divArrow)\n    divArrow.setAttribute('style', 'top:' + (rect.top + rect.height - 5) + 'px;left:' + (rect.left + (rect.width / 2) - 7) + 'px')\n  } else {\n    var pHeight = p.clientHeight\n    var pWidth = p.clientWidth\n    p.style.height = 0\n    p.style.width = 0\n    p.style.top = rect.top + 'px'\n    setTimeout(function () {\n      var style = p.getAttribute('style')\n      style += ' ;-webkit-transition: all 200ms ease;transition: all 200ms ease;'\n      p.setAttribute('style', style)\n      p.style.height = pHeight + 'px'\n      p.style.width = pWidth + 'px'\n    })\n  }\n  var customEvent = new CustomEvent('popoverOpened')\n  document.dispatchEvent(customEvent)\n}\nwindow.closePopover = function (p) {\n  var p = document.getElementById(p)\n  var timeEffect = 0\n  if (SO.code !== 2) {\n    p.style.opacity = 0\n    timeEffect = 200\n  }\n  setTimeout(function () {\n    var arrow = document.getElementsByClassName('popover-arrow')\n    if (arrow.length) {\n      arrow[0].parentNode.removeChild(arrow[0])\n    }\n    p.classList.remove('show')\n    var e = p.parentNode.getElementsByClassName('backdrop-popover')\n    if (e && e.length) {\n      e = e[0]\n      if (e && e.parentNode) {\n        e.parentNode.removeChild(e)\n      }\n    }\n    var customEvent = new CustomEvent('popoverClosed')\n    document.dispatchEvent(customEvent)\n  }, timeEffect)\n}\n"
  },
  {
    "path": "popover/style.css",
    "content": "/*Define a new popover.*/\n.popover {\n  position: absolute;\n  z-index: 10001;\n  border-radius: 3px;\n  box-shadow: 0 3px 12px 2px rgba(0,0,0,.3);\n  overflow: hidden;\n  display: none;\n  background-color: #fff;\n}\n.platform-ios .popover {\n  border-radius: 10px;\n  box-shadow: none;\n}\n.popover-arrow {\n  z-index: 10000;\n  position: absolute;\n  width: 14px;\n  height: 14px;\n  border-radius: 3px;\n  background-color: #fff;\n  -webkit-transform: rotate(45deg);\n  transform: rotate(45deg);\n}\n.popover.show {\n  display: block;\n}\n.popover .list, .popover .item {\n  border-width: 0;\n}\n.popover .list .item h1 {\n  margin: 0;\n}\n.popover .item {\n  display: table !important;\n  overflow: hidden;\n  white-space: nowrap;\n  padding: 10px;\n}\n.platform-ios .popover .item {\n  border-width: 1px;\n}\n.popover .item:first-child {\n  padding-top: 15px;\n}\n.popover .item:last-child {\n  padding-bottom: 15px;\n}\n.backdrop-popover {\n  opacity: 0.01;\n}\n.platform-ios .backdrop-popover {\n  opacity: 0.08;\n}\n.popover .item[data] {\n  display: none!important;\n}"
  },
  {
    "path": "progress-circle/component.json",
    "content": "{\n  \"name\":\"progress-circle\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": [\n    \"mobileui-colors\",\n    \"progressbarjs\"\n  ]\n}\n"
  },
  {
    "path": "progress-circle/index.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <title></title>\n  <link href=\"https://fonts.googleapis.com/css?family=Dosis|Raleway:400,700|Roboto:300,400,900,\" rel=\"stylesheet\">\n  <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n  <link rel=\"stylesheet\" href=\"../base/reset.css\">\n  <link rel=\"stylesheet\" href=\"../base/mobileui.css\">\n  <link rel=\"stylesheet\" href=\"../base/colors.css\">\n  <link rel=\"stylesheet\" href=\"../base/icons.css\">\n  <link rel=\"stylesheet\" href=\"../header/style.css\">\n  <link rel=\"stylesheet\" href=\"../button/style.css\">\n  <link rel=\"stylesheet\" href=\"../list/style.css\">\n  <link rel=\"stylesheet\" href=\"../cover/style.css\">\n  <link rel=\"stylesheet\" href=\"../grid/style.css\">\n  <link rel=\"stylesheet\" href=\"style.css\">\n  <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n  <style>\n    .content-lab {\n      margin-left: 50px\n    }\n  </style>\n  <script type=\"text/javascript\" src=\"script.js\"></script>\n</head>\n<body class=\"content-lab\">\n  <!-- BEGIN -->\n  <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">Progress Circle</h2>\n  <p>\n    Progress circle is a simple component widely used to inform metrics about a given.\n    You can create it either by the HTML element or programmed via javascript.\n  </p>\n  <div class=\"dependency tooltip\">\n    <strong>Dependency:</strong> <code>progressbarjs</code>.\n    <span class=\"tooltiptext\">The dependencies will be installed together with this module</span>\n  </div>\n  <p>\n    To use this component you need install with the command:\n  </p>\n  <pre>mobileui install progress-circle</pre>\n  <table class=\"tableDoc\">\n    <tbody>\n      <tr>\n        <th>Atribute/property</th>\n        <th>Description</th>\n      </tr>\n      <tr>\n        <td><code>value</code></td>\n        <td>Initial value for component</td>\n      </tr>\n      <tr>\n        <td><code>title</code></td>\n        <td>Title for component</td>\n      </tr>\n      <tr>\n        <td><code>subTitle</code></td>\n        <td>Subtitle for component</td>\n      </tr>\n      <tr>\n        <td><code>text</code></td>\n        <td>Info of the value, example: 65%, the simbol (%) is the text</td>\n      </tr>\n      <tr>\n        <td><code>color</code></td>\n        <td>Color of external line</td>\n      </tr>\n      <tr>\n        <td><code>textColor</code></td>\n        <td>Color of text. Use name <a href=\"#colors\">theme colors</a></td>\n      </tr>\n      <tr>\n        <td><code>textWeight</code></td>\n        <td>Weight of text (bold, 300, normal, 800, etc)</td>\n      </tr>\n      <tr>\n        <td><code>titleWeight</code></td>\n        <td>Weight of title (bold, 300, normal, 800, etc)</td>\n      </tr>\n      <tr>\n        <td><code>subTitleWeight</code></td>\n        <td>Weight of subtitle (bold, 300, normal, 800, etc)</td>\n      </tr>\n      <tr>\n        <td><code>titleColor</code></td>\n        <td>Color of title. Use name <a href=\"#colors\">theme colors</a></td>\n      </tr>\n      <tr>\n        <td><code>subTitleColor</code></td>\n        <td>Color of subtitle. Use name <a href=\"#colors\">theme colors</a></td>\n      </tr>\n      <tr>\n        <td><code>width</code></td>\n        <td>Size canvas size area</td>\n      </tr>\n      <tr>\n        <td><code>height</code></td>\n        <td>Size canvas size area</td>\n      </tr>\n      <tr>\n        <td><code>trailColor</code></td>\n        <td>Color of trail line. Use name <a href=\"#colors\">theme colors</a></td>\n      </tr>\n      <tr>\n        <td><code>strokeWidth</code></td>\n        <td>Size stroke line.</td>\n      </tr>\n      <tr>\n        <td><code>trailWidth</code></td>\n        <td>Size stroke line.</td>\n      </tr>\n      <tr>\n        <td><code>textSize</code></td>\n        <td>Size font text. Example textSize=\"25px\"</td>\n      </tr>\n      <tr>\n        <td><code>titleSize</code></td>\n        <td>Size font text. Example textSize=\"25px\"</td>\n      </tr>\n       <tr>\n        <td><code>subTitleSize</code></td>\n        <td>Size font text. Example textSize=\"25px\"</td>\n      </tr>\n       <tr>\n        <td><code>fill</code></td>\n        <td>...</td>\n      </tr>\n       <tr>\n        <td><code>padding</code></td>\n        <td>...</td>\n      </tr>\n      <tr>\n        <td><code>durationAnimate</code></td>\n        <td>...</td>\n      </tr>\n    </tbody>\n  </table>\n<textarea class=\"bind-code\" mode=\"text/html\">\n<div class=\"padding black-opacity-90 align-center\">\n  <div id=\"progressProfile\" class=\"progress-circle\"\n     title=\"PROFILE\"\n     color=\"blue\"\n     textColor=\"white\"\n     padding=\"20px\"\n     width=\"200px\"\n     height=\"200px\"\n     trailColor=\"white-opacity-10\"\n     textSize=\"40px\"\n     titleSize=\"16px\"\n     textWeight=\"300\"\n     value=\"65\"\n     text=\"%\"\n     strokeWidth=\"4\"\n     trailWidth=\"2\">\n  </div>\n  <div class=\"row\">\n    <div class=\"col\">\n      <div id=\"progressSteps\" class=\"progress-circle\"\n           color=\"red\"\n           textColor=\"red-100\"\n           subTitle=\"steps\"\n           value=\"44\"\n           text=\"%\"\n           height=\"100px\"\n           padding=\"10px\"\n           strokeWidth=\"4\"\n           trailWidth=\"4\"\n           trailColor=\"white-opacity-10\">\n      </div>\n    </div>\n    <div class=\"col\">\n      <div id=\"progressRunning\" class=\"progress-circle\"\n           color=\"purple\"\n           textColor=\"purple-100\"\n           subTitle=\"running\"\n           value=\"23\"\n           text=\"km\"\n           height=\"100px\"\n           padding=\"10px\"\n           strokeWidth=\"4\"\n           trailWidth=\"4\"\n           trailColor=\"white-opacity-10\">\n      </div>\n    </div>\n    <div class=\"col\">\n      <div id=\"progressTasks\" class=\"progress-circle\"\n           color=\"green\"\n           textColor=\"green-100\"\n           subTitle=\"tasks\"\n           value=\"79\"\n           text=\"/100\"\n           height=\"100px\"\n           padding=\"10px\"\n           strokeWidth=\"4\"\n           trailWidth=\"4\"\n           trailColor=\"white-opacity-10\">\n      </div>\n    </div>\n  </div>\n  <button class=\"margin opacity-40 border-white text-white radius\" onclick=\"updateValuesProgressCircle()\">UPDATE VALUES</button>\n  <button class=\"margin opacity-40 border-white text-white radius\" onclick=\"ProgressCircle.rebind()\">REBIND VALUES</button>\n</div>\n\n<script type=\"text/javascript\">\n  function updateValuesProgressCircle(){\n    //random values\n    document.getElementById('progressProfile').progressCircle.update(Math.floor(Math.random() * 100) + 1);\n    document.getElementById('progressSteps').progressCircle.update(Math.floor(Math.random() * 100) + 1);\n    document.getElementById('progressRunning').progressCircle.update(Math.floor(Math.random() * 100) + 1);\n    document.getElementById('progressTasks').progressCircle.update(Math.floor(Math.random() * 100) + 1);\n  }\n</script></textarea>\n<p>\n  You can create a progress circle by JavaScript:\n</p>\n<textarea class=\"bind-code\" mode=\"text/html\" height-preview=\"400px\">\n<div class=\"padding blue-800 align-center\">\n  <button class=\"margin opacity-40 border-white text-white radius\" onclick=\"showProgressUser()\">CREATE PROGRESS CIRCLE</button>\n  <div id=\"progressUserKM\"></div>\n</div>\n<script type=\"text/javascript\">\n  function showProgressUser(){\n    var config = {\n      value: 55,\n      subTitle: 'km/h',\n      durationAnimate: 3000,\n      padding: '3px',\n      color: 'white',\n      trailColor: 'black-opacity-10',\n      textSize: '50px',\n      textColor: 'white',\n      width:'200px',\n      strokeWidth: '2',\n      trailWidth:'8'\n    }\n    ProgressCircle.create(document.getElementById('progressUserKM'), config);\n  }\n</script></textarea>\n  <!-- DONE -->\n  <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n  <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n  <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n  <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n  <script type=\"text/javascript\" src=\"../mobileui-colors/script.js\"></script>\n  <script type=\"text/javascript\" src=\"../progressbarjs/script.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "progress-circle/script.js",
    "content": "window.ProgressCircle = {\n  rebind : function(){\n    var self = this;\n    var progress = document.querySelectorAll('.progress-circle');\n    for (var i = 0; i < progress.length; i++) {\n      progress[i].classList.remove(\"binded\");\n      progress[i].innerHTML = \"\";\n    }\n    self.bind();\n  },\n  bind : function(){\n    var progress = document.querySelectorAll('.progress-circle:not(.binded)');\n    var self = this;\n    for (var i = 0; i < progress.length; i++) {\n      var config = {};\n      config.value = Number(progress[i].getAttribute('value'));\n      config.maxValue = Number(progress[i].getAttribute('maxValue')) || 100;\n      config.showValue = progress[i].getAttribute('showValue')==='1' || progress[i].getAttribute('showValue')==='true' || false;\n      config.title = progress[i].getAttribute('title') || '';\n      config.subTitle = progress[i].getAttribute('subTitle') || '';\n      config.text = progress[i].getAttribute('text') || '';\n      config.color = progress[i].getAttribute('color') || 'blue';\n      config.textColor = progress[i].getAttribute('textColor') || 'grey-800';\n      config.textWeight = progress[i].getAttribute('textWeight') || 'normal';\n      config.titleWeight = progress[i].getAttribute('titleWeight') || 'normal';\n      config.subTitleWeight = progress[i].getAttribute('subTitleWeight') || 'normal';\n      config.titleColor = progress[i].getAttribute('titleColor') || 'grey-500';\n      config.subTitleColor = progress[i].getAttribute('subTitleColor') || 'grey-300';\n      config.width = progress[i].getAttribute('width') || '100%';\n      config.height = progress[i].getAttribute('height') || '300px';\n      config.trailColor = progress[i].getAttribute('trailColor') || 'grey';\n      config.strokeWidth = progress[i].getAttribute('strokeWidth') || '1';\n      config.trailWidth = progress[i].getAttribute('trailWidth') || '1';\n      config.textSize = progress[i].getAttribute('textSize') || '16px';\n      config.titleSize = progress[i].getAttribute('titleSize') || '14px';\n      config.subTitleSize = progress[i].getAttribute('subTitleSize') || '12px';\n      config.fill = progress[i].getAttribute('fill') || '';\n      config.padding = progress[i].getAttribute('padding') || '0';\n      config.durationAnimate = Number(progress[i].getAttribute('duration') || '800');\n      self.create(progress[i], config);\n    }\n  },\n  create: function(elm, config){\n    if(!elm.classList.contains('binded')){\n      elm.classList.add('binded');\n      if(!elm.classList.contains('progress-circle')){\n        elm.classList.add('progress-circle-js')\n      }\n      config.value = config.value || 0;\n      config.maxValue = config.maxValue || 100;\n      config.showValue = config.showValue || false;\n      config.title = config.title || '';\n      config.subTitle = config.subTitle || '';\n      config.text = config.text || '';\n      config.color = config.color || 'blue';\n      config.textColor = config.textColor || 'grey-800';\n      config.textWeight = config.textWeight || 'normal';\n      config.titleWeight = config.titleWeight || 'normal';\n      config.subTitleWeight = config.subTitleWeight || 'normal';\n      config.titleColor = config.titleColor || 'grey-500';\n      config.subTitleColor = config.subTitleColor || 'grey-300';\n      config.width = config.width || '100%';\n      config.height = config.height || '300px';\n      config.trailColor = config.trailColor || 'grey';\n      config.strokeWidth = config.strokeWidth || '1';\n      config.trailWidth = config.trailWidth || '1';\n      config.textSize = config.textSize || '16px';\n      config.titleSize = config.titleSize || '14px';\n      config.subTitleSize = config.subTitleSize || '12px';\n      config.fill = config.fill || '';\n      config.padding = config.padding || '0';\n      config.durationAnimate = config.durationAnimate || '800';\n      elm.style.width=config.width;\n      elm.style.height=config.height;\n      elm.progressCircle = {};\n      elm.progressCircle.bar = new ProgressBar.Circle(elm, {\n        color: colorsMobileUI[config.color],\n        trailColor: colorsMobileUI[config.trailColor],\n        strokeWidth: config.strokeWidth,\n        trailWidth: config.trailWidth,\n        easing: 'easeInOut',\n        duration: config.durationAnimate,\n        fill: config.fill,\n        text: {\n          autoStyleContainer: true,\n          style: {\n            color: colorsMobileUI[config.textColor],\n            position: 'absolute',\n            fontSize: config.textSize,\n            fontWeight: config.textWeight,\n            left: '50%',\n            top: '50%',\n            padding: 0,\n            margin: 0,\n            transform: {\n                prefix: true,\n                value: 'translate(-50%, -50%)'\n            }\n          }\n        },\n        svgStyle: {\n            display: 'block',\n            width: config.width,\n            height: config.height,\n            padding: config.padding\n        },\n        from: { color: colorsMobileUI[config.color], width: config.strokeWidth },\n        to: { color: colorsMobileUI[config.color], width: config.strokeWidth },\n        // Set default step function for all animate calls\n        step: function(state, circle) {\n          circle.path.setAttribute('stroke', state.color);\n          circle.path.setAttribute('stroke-width', state.width);\n\n          var valueInner = Math.round(circle.value() * config.maxValue);\n          if(config.showValue){\n            valueInner = config.value\n          }\n          var valueText = '';\n          if(config.title){\n            var style = 'style=\"';\n            if(config.titleSize) style += ';font-size:'+config.titleSize;\n            if(config.titleWeight) style += ';font-weight:'+config.titleWeight;\n            if(config.titleColor) style += ';color:'+colorsMobileUI[config.titleColor];\n            style += '\"';\n            valueText += '<div '+style+' class=\"progress-circle-title\">'+config.title+'</div>'\n          }\n          valueText += valueInner + config.text;\n          if(config.subTitle){\n            var style = 'style=\"';\n            if(config.subTitleSize) style += ';font-size:'+config.subTitleSize;\n            if(config.subTitleWeight) style += ';font-weight:'+config.subTitleWeight;\n            if(config.subTitleColor) style += ';color:'+colorsMobileUI[config.subTitleColor];\n            style += '\"';\n            valueText += '<div '+style+' class=\"progress-circle-subtitle\">'+config.subTitle+'</div>'\n          }\n          circle.setText(valueText);\n\n        }\n      });\n      elm.progressCircle.update = function(v){\n        var valueBar = 0;\n        if(v <= config.maxValue && v >= 0) {\n          valueBar = v/config.maxValue;\n        } else if(v < 0) {\n          console.warn(\"Value for progress circle is too small. (Requested value is \"+v+\")\");\n        } else {\n          console.warn(\"Value for progress circle is too high. Maximum is \"+config.maxValue+\" and requested value is \"+v+\". (Value set to maximum for now.)\")\n          valueBar=1;\n        }\n        this.bar.animate(valueBar);\n      }\n      elm.progressCircle.update(config.value);\n    }\n  }\n}\n"
  },
  {
    "path": "progress-circle/style.css",
    "content": ".progress-circle, .progress-circle-js {\n  margin: auto;\n}\n.progress-circle-title {\n  opacity: 0.8;\n}\n.progress-circle-subtitle {\n  opacity: 0.6;\n}\n"
  },
  {
    "path": "progress-semicircle/component.json",
    "content": "{\n  \"name\":\"progress-semicircle\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": [\n    \"mobileui-colors\",\n    \"progressbarjs\"\n  ]\n}\n"
  },
  {
    "path": "progress-semicircle/index.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <title></title>\n  <link href=\"https://fonts.googleapis.com/css?family=Dosis|Raleway:400,700|Roboto:300,400,900,\" rel=\"stylesheet\">\n  <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n  <link rel=\"stylesheet\" href=\"../base/reset.css\">\n  <link rel=\"stylesheet\" href=\"../base/mobileui.css\">\n  <link rel=\"stylesheet\" href=\"../base/colors.css\">\n  <link rel=\"stylesheet\" href=\"../base/icons.css\">\n  <link rel=\"stylesheet\" href=\"../header/style.css\">\n  <link rel=\"stylesheet\" href=\"../button/style.css\">\n  <link rel=\"stylesheet\" href=\"../list/style.css\">\n  <link rel=\"stylesheet\" href=\"../cover/style.css\">\n  <link rel=\"stylesheet\" href=\"../grid/style.css\">\n  <link rel=\"stylesheet\" href=\"style.css\">\n  <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n  <style>\n    .content-lab {\n      margin-left: 50px\n    }\n  </style>\n  <script type=\"text/javascript\" src=\"script.js\"></script>\n</head>\n<body class=\"content-lab\">\n  <!-- BEGIN -->\n  <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">Progress Semicircle</h2>\n  <p>\n    Progress semi circle is a simple component widely used to inform metrics about a given.\n    You can create it either by the HTML element or programmed via javascript.\n  </p>\n  <div class=\"dependency tooltip\">\n    <strong>Dependency:</strong> <code>progressbarjs</code>.\n    <span class=\"tooltiptext\">The dependencies will be installed together with this module</span>\n  </div>\n  <p>\n    To use this component you need install with the command:\n  </p>\n  <pre>mobileui install progress-semicircle</pre>\n  <table class=\"tableDoc\">\n    <tbody>\n      <tr>\n        <th>Atribute/property</th>\n        <th>Description</th>\n      </tr>\n      <tr>\n        <td><code>value</code></td>\n        <td>Initial value for component</td>\n      </tr>\n      <tr>\n        <td><code>title</code></td>\n        <td>Title for component</td>\n      </tr>\n      <tr>\n        <td><code>subTitle</code></td>\n        <td>Subtitle for component</td>\n      </tr>\n      <tr>\n        <td><code>text</code></td>\n        <td>Info of the value, example: 65%, the simbol (%) is the text</td>\n      </tr>\n      <tr>\n        <td><code>color</code></td>\n        <td>Color of external line</td>\n      </tr>\n      <tr>\n        <td><code>textColor</code></td>\n        <td>Color of text. Use name <a href=\"#colors\">theme colors</a></td>\n      </tr>\n      <tr>\n        <td><code>textWeight</code></td>\n        <td>Weight of text (bold, 300, normal, 800, etc)</td>\n      </tr>\n      <tr>\n        <td><code>titleWeight</code></td>\n        <td>Weight of title (bold, 300, normal, 800, etc)</td>\n      </tr>\n      <tr>\n        <td><code>subTitleWeight</code></td>\n        <td>Weight of subtitle (bold, 300, normal, 800, etc)</td>\n      </tr>\n      <tr>\n        <td><code>titleColor</code></td>\n        <td>Color of title. Use name <a href=\"#colors\">theme colors</a></td>\n      </tr>\n      <tr>\n        <td><code>subTitleColor</code></td>\n        <td>Color of subtitle. Use name <a href=\"#colors\">theme colors</a></td>\n      </tr>\n      <tr>\n        <td><code>width</code></td>\n        <td>Size canvas size area</td>\n      </tr>\n      <tr>\n        <td><code>height</code></td>\n        <td>Size canvas size area</td>\n      </tr>\n      <tr>\n        <td><code>trailColor</code></td>\n        <td>Color of trail line. Use name <a href=\"#colors\">theme colors</a></td>\n      </tr>\n      <tr>\n        <td><code>strokeWidth</code></td>\n        <td>Size stroke line.</td>\n      </tr>\n      <tr>\n        <td><code>trailWidth</code></td>\n        <td>Size stroke line.</td>\n      </tr>\n      <tr>\n        <td><code>textSize</code></td>\n        <td>Size font text. Example textSize=\"25px\"</td>\n      </tr>\n      <tr>\n        <td><code>textMargin</code></td>\n        <td>Size margin text. Example textMargin=\"100px\"</td>\n      </tr>\n      <tr>\n        <td><code>titleSize</code></td>\n        <td>Size font text. Example textSize=\"25px\"</td>\n      </tr>\n       <tr>\n        <td><code>subTitleSize</code></td>\n        <td>Size font text. Example textSize=\"25px\"</td>\n      </tr>\n       <tr>\n        <td><code>fill</code></td>\n        <td>...</td>\n      </tr>\n       <tr>\n        <td><code>padding</code></td>\n        <td>...</td>\n      </tr>\n      <tr>\n        <td><code>durationAnimate</code></td>\n        <td>...</td>\n      </tr>\n    </tbody>\n  </table>\n<textarea class=\"bind-code\" mode=\"text/html\">\n<div class=\"padding deep-purple align-center\">\n  <div id=\"progressMetricUser\" class=\"progress-semicircle\"\n     title=\"Your metric\"\n     subTitle=\"Compared by others\"\n     color=\"white\"\n     textColor=\"white\"\n     textMargin=\"100px 0\"\n     width=\"250px\"\n     height=\"250px\"\n     trailColor=\"white-opacity-10\"\n     textSize=\"40px\"\n     titleSize=\"16px\"\n     textWeight=\"300\"\n     value=\"91\"\n     text=\"%\"\n     strokeWidth=\"8\"\n     trailWidth=\"2\">\n  </div>\n  <button class=\"margin opacity-40 border-white text-white radius\" onclick=\"updateValuesProgressSemicircle()\">UPDATE VALUES</button>\n  <button class=\"margin opacity-40 border-white text-white radius\" onclick=\"ProgressSemicircle.rebind()\">REBIND VALUES</button>\n</div>\n\n<script type=\"text/javascript\">\n  function updateValuesProgressSemicircle(){\n    //random values\n    document.getElementById('progressMetricUser').progressSemicircle.update(Math.floor(Math.random() * 100) + 1);\n  }\n</script></textarea>\n  <!-- DONE -->\n  <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n  <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n  <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n  <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n  <script type=\"text/javascript\" src=\"../mobileui-colors/script.js\"></script>\n  <script type=\"text/javascript\" src=\"../progressbarjs/script.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "progress-semicircle/script.js",
    "content": "window.ProgressSemicircle = {\n  rebind : function(){\n    var self = this;\n    var progress = document.querySelectorAll('.progress-semicircle');\n    for (var i = 0; i < progress.length; i++) {\n      progress[i].classList.remove(\"binded\");\n      progress[i].innerHTML = \"\";\n    }\n    self.bind();\n  },\n  bind : function(){\n    var progress = document.querySelectorAll('.progress-semicircle:not(.binded)');\n    var self = this;\n    for (var i = 0; i < progress.length; i++) {\n      var config = {};\n      config.value = Number(progress[i].getAttribute('value'));\n      config.maxValue = Number(progress[i].getAttribute('maxValue')) || 100;\n      config.title = progress[i].getAttribute('title') || '';\n      config.subTitle = progress[i].getAttribute('subTitle') || '';\n      config.text = progress[i].getAttribute('text') || '';\n      config.color = progress[i].getAttribute('color') || 'blue';\n      config.textColor = progress[i].getAttribute('textColor') || 'grey-800';\n      config.textWeight = progress[i].getAttribute('textWeight') || 'normal';\n      config.titleWeight = progress[i].getAttribute('titleWeight') || 'normal';\n      config.titleLineHeight = progress[i].getAttribute('titleLineHeight') || 'normal';\n      config.subTitleWeight = progress[i].getAttribute('subTitleWeight') || 'normal';\n      config.titleColor = progress[i].getAttribute('titleColor') || 'grey-500';\n      config.subTitleColor = progress[i].getAttribute('subTitleColor') || 'grey-300';\n      config.width = progress[i].getAttribute('width') || '100%';\n      config.height = progress[i].getAttribute('height') || '300px';\n      config.trailColor = progress[i].getAttribute('trailColor') || 'grey';\n      config.strokeWidth = progress[i].getAttribute('strokeWidth') || '1';\n      config.trailWidth = progress[i].getAttribute('trailWidth') || '1';\n      config.textSize = progress[i].getAttribute('textSize') || '16px';\n      config.titleSize = progress[i].getAttribute('titleSize') || '14px';\n      config.subTitleSize = progress[i].getAttribute('subTitleSize') || '12px';\n      config.fill = progress[i].getAttribute('fill') || '';\n      config.padding = progress[i].getAttribute('padding') || '0';\n      config.textMargin = progress[i].getAttribute('textMargin') || '100px 0';\n      config.durationAnimate = Number(progress[i].getAttribute('duration') || '800');\n      self.create(progress[i], config);\n    }\n  },\n  create: function(elm, config){\n    if(!elm.classList.contains('binded')){\n      elm.classList.add('binded');\n      if(!elm.classList.contains('progress-semicircle')){\n        elm.classList.add('progress-semicircle-js')\n      }\n      config.value = config.value || 0;\n      config.maxValue = config.maxValue || 100;\n      config.title = config.title || '';\n      config.subTitle = config.subTitle || '';\n      config.text = config.text || '';\n      config.color = config.color || 'blue';\n      config.textColor = config.textColor || 'grey-800';\n      config.textWeight = config.textWeight || 'normal';\n      config.titleWeight = config.titleWeight || 'normal';\n      config.subTitleWeight = config.subTitleWeight || 'normal';\n      config.titleColor = config.titleColor || 'grey-500';\n      config.subTitleColor = config.subTitleColor || 'grey-300';\n      config.width = config.width || '100%';\n      config.height = config.height || '300px';\n      config.trailColor = config.trailColor || 'grey';\n      config.strokeWidth = config.strokeWidth || '1';\n      config.trailWidth = config.trailWidth || '1';\n      config.textSize = config.textSize || '16px';\n      config.titleSize = config.titleSize || '14px';\n      config.subTitleSize = config.subTitleSize || '12px';\n      config.fill = config.fill || '';\n      config.padding = config.padding || '0';\n      config.durationAnimate = config.durationAnimate || '800';\n      config.textMargin = config.textMargin || '100px 0';\n      elm.style.width=config.width;\n      elm.style.height=config.height;\n      elm.progressSemicircle = {};\n      elm.progressSemicircle.bar = new ProgressBar.SemiCircle(elm, {\n        color: colorsMobileUI[config.color],\n        trailColor: colorsMobileUI[config.trailColor],\n        strokeWidth: config.strokeWidth,\n        trailWidth: config.trailWidth,\n        easing: 'easeInOut',\n        duration: config.durationAnimate,\n        fill: config.fill,\n        text: {\n          alignToBottom: false,\n          style: {\n            color: colorsMobileUI[config.textColor],\n            position: 'absolute',\n            fontSize: config.textSize,\n            fontWeight: config.textWeight,\n            left: '50%',\n            padding: 0,\n            margin: config.textMargin,\n          }\n        },\n        svgStyle: {\n            display: 'block',\n            width: config.width,\n            height: config.height,\n            padding: config.padding\n        },\n        from: { color: colorsMobileUI[config.color], width: config.strokeWidth },\n        to: { color: colorsMobileUI[config.color], width: config.strokeWidth },\n        // Set default step function for all animate calls\n        step: function(state, circle) {\n          circle.path.setAttribute('stroke', state.color);\n          circle.path.setAttribute('stroke-width', state.width);\n\n          var valueInner = Math.round(circle.value() * config.maxValue);\n          var valueText = '';\n          if(config.title){\n            var style = 'style=\"';\n            if(config.titleSize) style += ';font-size:'+config.titleSize;\n            if(config.titleWeight) style += ';font-weight:'+config.titleWeight;\n            if(config.titleLineHeight) style += ';line-height:'+config.titleLineHeight;\n            if(config.titleColor) style += ';color:'+colorsMobileUI[config.titleColor];\n            style += '\"';\n            valueText += '<div '+style+' class=\"progress-semicircle-title\">'+config.title+'</div>'\n          }\n          valueText += valueInner + config.text;\n          if(config.subTitle){\n            var style = 'style=\"';\n            if(config.subTitleSize) style += ';font-size:'+config.subTitleSize;\n            if(config.subTitleWeight) style += ';font-weight:'+config.subTitleWeight;\n            if(config.subTitleColor) style += ';color:'+colorsMobileUI[config.subTitleColor];\n            style += '\"';\n            valueText += '<div '+style+' class=\"progress-semicircle-subtitle\">'+config.subTitle+'</div>'\n          }\n          circle.setText(valueText);\n\n        }\n      });\n      elm.progressSemicircle.update = function(v){\n        var valueBar = 0;\n        if(v <= config.maxValue && v >= 0) {\n          valueBar = v/config.maxValue;\n        } else if(v < 0) {\n          console.warn(\"Value for progress semicircle is too small. (Requested value is \"+v+\")\");\n        } else {\n          console.warn(\"Value for progress semicircle is too high. Maximum is \"+config.maxValue+\" and requested value is \"+v+\". (Value set to maximum for now.)\")\n          valueBar=1;\n        }\n        this.bar.animate(valueBar);\n      }\n      elm.progressSemicircle.update(config.value);\n    }\n  }\n}\n"
  },
  {
    "path": "progress-semicircle/style.css",
    "content": ".progress-semicircle, .progress-semicircle-js {\n  margin: auto;\n}\n.progress-semicircle-title {\n  opacity: 0.8;\n}\n.progress-semicircle-subtitle {\n  opacity: 0.6;\n}\n"
  },
  {
    "path": "progressbarjs/component.json",
    "content": "{\n  \"name\":\"progressbarjs\",\n  \"author\": \"kimmobrunfeldt\",\n  \"dependencies\": []\n}\n"
  },
  {
    "path": "progressbarjs/index.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <title></title>\n  <link href=\"https://fonts.googleapis.com/css?family=Dosis|Raleway:400,700|Roboto:300,400,900,\" rel=\"stylesheet\">\n  <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n  <link rel=\"stylesheet\" href=\"../base/reset.css\">\n  <link rel=\"stylesheet\" href=\"../base/mobileui.css\">\n  <link rel=\"stylesheet\" href=\"../base/colors.css\">\n  <link rel=\"stylesheet\" href=\"../base/icons.css\">\n  <link rel=\"stylesheet\" href=\"../header/style.css\">\n  <link rel=\"stylesheet\" href=\"../button/style.css\">\n  <link rel=\"stylesheet\" href=\"../list/style.css\">\n  <link rel=\"stylesheet\" href=\"../cover/style.css\">\n  <link rel=\"stylesheet\" href=\"../grid/style.css\">\n  <link rel=\"stylesheet\" href=\"style.css\">\n  <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n  <style>\n    .content-lab {\n      margin-left: 50px\n    }\n  </style>\n  <script type=\"text/javascript\" src=\"script.js\"></script>\n</head>\n<body class=\"content-lab\">\n  <!-- BEGIN -->\n  <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">ProgressBar.js</h2>\n  <p>\n    With <a href=\"https://kimmobrunfeldt.github.io/progressbar.js/\" target=\"_blank\">ProgressBar.js</a>, it's easy to create responsive and stylish progress bars\n    for the web. Animations perform well even on mobile devices. It provides a few\n    built‑in shapes like Line, Circle and SemiCircle but you can also create custom\n    shaped progress bars with any vector graphic editor.\n  </p>\n  <p>\n\n  </p>\n  <p>\n    To use this component you need install with the command:\n  </p>\n  <pre>mobileui install progressbarjs</pre>\n  <p>\n    MobileUI use this lib for create another components!\n  </p>\n  <!-- DONE -->\n  <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n  <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n  <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n  <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n  <script type=\"text/javascript\" src=\"../progressbarjs/script.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "progressbarjs/script.js",
    "content": "// ProgressBar.js 1.0.1\n// https://kimmobrunfeldt.github.io/progressbar.js\n// License: MIT\n\n!function(a){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=a();else if(\"function\"==typeof define&&define.amd)define([],a);else{var b;b=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this,b.ProgressBar=a()}}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i=\"function\"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error(\"Cannot find module '\"+g+\"'\");throw j.code=\"MODULE_NOT_FOUND\",j}var k=c[g]={exports:{}};a[g][0].call(k.exports,function(b){var c=a[g][1][b];return e(c?c:b)},k,k.exports,b,a,c,d)}return c[g].exports}for(var f=\"function\"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(b,c,d){(function(){var b=this||Function(\"return this\")(),e=function(){\"use strict\";function e(){}function f(a,b){var c;for(c in a)Object.hasOwnProperty.call(a,c)&&b(c)}function g(a,b){return f(b,function(c){a[c]=b[c]}),a}function h(a,b){f(b,function(c){\"undefined\"==typeof a[c]&&(a[c]=b[c])})}function i(a,b,c,d,e,f,g){var h,i,k,l=f>a?0:(a-f)/e;for(h in b)b.hasOwnProperty(h)&&(i=g[h],k=\"function\"==typeof i?i:o[i],b[h]=j(c[h],d[h],k,l));return b}function j(a,b,c,d){return a+(b-a)*c(d)}function k(a,b){var c=n.prototype.filter,d=a._filterArgs;f(c,function(e){\"undefined\"!=typeof c[e][b]&&c[e][b].apply(a,d)})}function l(a,b,c,d,e,f,g,h,j,l,m){v=b+c+d,w=Math.min(m||u(),v),x=w>=v,y=d-(v-w),a.isPlaying()&&(x?(j(g,a._attachment,y),a.stop(!0)):(a._scheduleId=l(a._timeoutHandler,s),k(a,\"beforeTween\"),b+c>w?i(1,e,f,g,1,1,h):i(w,e,f,g,d,b+c,h),k(a,\"afterTween\"),j(e,a._attachment,y)))}function m(a,b){var c={},d=typeof b;return\"string\"===d||\"function\"===d?f(a,function(a){c[a]=b}):f(a,function(a){c[a]||(c[a]=b[a]||q)}),c}function n(a,b){this._currentState=a||{},this._configured=!1,this._scheduleFunction=p,\"undefined\"!=typeof b&&this.setConfig(b)}var o,p,q=\"linear\",r=500,s=1e3/60,t=Date.now?Date.now:function(){return+new Date},u=\"undefined\"!=typeof SHIFTY_DEBUG_NOW?SHIFTY_DEBUG_NOW:t;p=\"undefined\"!=typeof window?window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||window.mozCancelRequestAnimationFrame&&window.mozRequestAnimationFrame||setTimeout:setTimeout;var v,w,x,y;return n.prototype.tween=function(a){return this._isTweening?this:(void 0===a&&this._configured||this.setConfig(a),this._timestamp=u(),this._start(this.get(),this._attachment),this.resume())},n.prototype.setConfig=function(a){a=a||{},this._configured=!0,this._attachment=a.attachment,this._pausedAtTime=null,this._scheduleId=null,this._delay=a.delay||0,this._start=a.start||e,this._step=a.step||e,this._finish=a.finish||e,this._duration=a.duration||r,this._currentState=g({},a.from)||this.get(),this._originalState=this.get(),this._targetState=g({},a.to)||this.get();var b=this;this._timeoutHandler=function(){l(b,b._timestamp,b._delay,b._duration,b._currentState,b._originalState,b._targetState,b._easing,b._step,b._scheduleFunction)};var c=this._currentState,d=this._targetState;return h(d,c),this._easing=m(c,a.easing||q),this._filterArgs=[c,this._originalState,d,this._easing],k(this,\"tweenCreated\"),this},n.prototype.get=function(){return g({},this._currentState)},n.prototype.set=function(a){this._currentState=a},n.prototype.pause=function(){return this._pausedAtTime=u(),this._isPaused=!0,this},n.prototype.resume=function(){return this._isPaused&&(this._timestamp+=u()-this._pausedAtTime),this._isPaused=!1,this._isTweening=!0,this._timeoutHandler(),this},n.prototype.seek=function(a){a=Math.max(a,0);var b=u();return this._timestamp+a===0?this:(this._timestamp=b-a,this.isPlaying()||(this._isTweening=!0,this._isPaused=!1,l(this,this._timestamp,this._delay,this._duration,this._currentState,this._originalState,this._targetState,this._easing,this._step,this._scheduleFunction,b),this.pause()),this)},n.prototype.stop=function(a){return this._isTweening=!1,this._isPaused=!1,this._timeoutHandler=e,(b.cancelAnimationFrame||b.webkitCancelAnimationFrame||b.oCancelAnimationFrame||b.msCancelAnimationFrame||b.mozCancelRequestAnimationFrame||b.clearTimeout)(this._scheduleId),a&&(k(this,\"beforeTween\"),i(1,this._currentState,this._originalState,this._targetState,1,0,this._easing),k(this,\"afterTween\"),k(this,\"afterTweenEnd\"),this._finish.call(this,this._currentState,this._attachment)),this},n.prototype.isPlaying=function(){return this._isTweening&&!this._isPaused},n.prototype.setScheduleFunction=function(a){this._scheduleFunction=a},n.prototype.dispose=function(){var a;for(a in this)this.hasOwnProperty(a)&&delete this[a]},n.prototype.filter={},n.prototype.formula={linear:function(a){return a}},o=n.prototype.formula,g(n,{now:u,each:f,tweenProps:i,tweenProp:j,applyFilter:k,shallowCopy:g,defaults:h,composeEasingObject:m}),\"function\"==typeof SHIFTY_DEBUG_NOW&&(b.timeoutHandler=l),\"object\"==typeof d?c.exports=n:\"function\"==typeof a&&a.amd?a(function(){return n}):\"undefined\"==typeof b.Tweenable&&(b.Tweenable=n),n}();!function(){e.shallowCopy(e.prototype.formula,{easeInQuad:function(a){return Math.pow(a,2)},easeOutQuad:function(a){return-(Math.pow(a-1,2)-1)},easeInOutQuad:function(a){return(a/=.5)<1?.5*Math.pow(a,2):-.5*((a-=2)*a-2)},easeInCubic:function(a){return Math.pow(a,3)},easeOutCubic:function(a){return Math.pow(a-1,3)+1},easeInOutCubic:function(a){return(a/=.5)<1?.5*Math.pow(a,3):.5*(Math.pow(a-2,3)+2)},easeInQuart:function(a){return Math.pow(a,4)},easeOutQuart:function(a){return-(Math.pow(a-1,4)-1)},easeInOutQuart:function(a){return(a/=.5)<1?.5*Math.pow(a,4):-.5*((a-=2)*Math.pow(a,3)-2)},easeInQuint:function(a){return Math.pow(a,5)},easeOutQuint:function(a){return Math.pow(a-1,5)+1},easeInOutQuint:function(a){return(a/=.5)<1?.5*Math.pow(a,5):.5*(Math.pow(a-2,5)+2)},easeInSine:function(a){return-Math.cos(a*(Math.PI/2))+1},easeOutSine:function(a){return Math.sin(a*(Math.PI/2))},easeInOutSine:function(a){return-.5*(Math.cos(Math.PI*a)-1)},easeInExpo:function(a){return 0===a?0:Math.pow(2,10*(a-1))},easeOutExpo:function(a){return 1===a?1:-Math.pow(2,-10*a)+1},easeInOutExpo:function(a){return 0===a?0:1===a?1:(a/=.5)<1?.5*Math.pow(2,10*(a-1)):.5*(-Math.pow(2,-10*--a)+2)},easeInCirc:function(a){return-(Math.sqrt(1-a*a)-1)},easeOutCirc:function(a){return Math.sqrt(1-Math.pow(a-1,2))},easeInOutCirc:function(a){return(a/=.5)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)},easeOutBounce:function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},easeInBack:function(a){var b=1.70158;return a*a*((b+1)*a-b)},easeOutBack:function(a){var b=1.70158;return(a-=1)*a*((b+1)*a+b)+1},easeInOutBack:function(a){var b=1.70158;return(a/=.5)<1?.5*(a*a*(((b*=1.525)+1)*a-b)):.5*((a-=2)*a*(((b*=1.525)+1)*a+b)+2)},elastic:function(a){return-1*Math.pow(4,-8*a)*Math.sin((6*a-1)*(2*Math.PI)/2)+1},swingFromTo:function(a){var b=1.70158;return(a/=.5)<1?.5*(a*a*(((b*=1.525)+1)*a-b)):.5*((a-=2)*a*(((b*=1.525)+1)*a+b)+2)},swingFrom:function(a){var b=1.70158;return a*a*((b+1)*a-b)},swingTo:function(a){var b=1.70158;return(a-=1)*a*((b+1)*a+b)+1},bounce:function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},bouncePast:function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?2-(7.5625*(a-=1.5/2.75)*a+.75):2.5/2.75>a?2-(7.5625*(a-=2.25/2.75)*a+.9375):2-(7.5625*(a-=2.625/2.75)*a+.984375)},easeFromTo:function(a){return(a/=.5)<1?.5*Math.pow(a,4):-.5*((a-=2)*Math.pow(a,3)-2)},easeFrom:function(a){return Math.pow(a,4)},easeTo:function(a){return Math.pow(a,.25)}})}(),function(){function a(a,b,c,d,e,f){function g(a){return((n*a+o)*a+p)*a}function h(a){return((q*a+r)*a+s)*a}function i(a){return(3*n*a+2*o)*a+p}function j(a){return 1/(200*a)}function k(a,b){return h(m(a,b))}function l(a){return a>=0?a:0-a}function m(a,b){var c,d,e,f,h,j;for(e=a,j=0;8>j;j++){if(f=g(e)-a,l(f)<b)return e;if(h=i(e),l(h)<1e-6)break;e-=f/h}if(c=0,d=1,e=a,c>e)return c;if(e>d)return d;for(;d>c;){if(f=g(e),l(f-a)<b)return e;a>f?c=e:d=e,e=.5*(d-c)+c}return e}var n=0,o=0,p=0,q=0,r=0,s=0;return p=3*b,o=3*(d-b)-p,n=1-p-o,s=3*c,r=3*(e-c)-s,q=1-s-r,k(a,j(f))}function b(b,c,d,e){return function(f){return a(f,b,c,d,e,1)}}e.setBezierFunction=function(a,c,d,f,g){var h=b(c,d,f,g);return h.displayName=a,h.x1=c,h.y1=d,h.x2=f,h.y2=g,e.prototype.formula[a]=h},e.unsetBezierFunction=function(a){delete e.prototype.formula[a]}}(),function(){function a(a,b,c,d,f,g){return e.tweenProps(d,b,a,c,1,g,f)}var b=new e;b._filterArgs=[],e.interpolate=function(c,d,f,g,h){var i=e.shallowCopy({},c),j=h||0,k=e.composeEasingObject(c,g||\"linear\");b.set({});var l=b._filterArgs;l.length=0,l[0]=i,l[1]=c,l[2]=d,l[3]=k,e.applyFilter(b,\"tweenCreated\"),e.applyFilter(b,\"beforeTween\");var m=a(c,i,d,f,k,j);return e.applyFilter(b,\"afterTween\"),m}}(),function(a){function b(a,b){var c,d=[],e=a.length;for(c=0;e>c;c++)d.push(\"_\"+b+\"_\"+c);return d}function c(a){var b=a.match(v);return b?(1===b.length||a[0].match(u))&&b.unshift(\"\"):b=[\"\",\"\"],b.join(A)}function d(b){a.each(b,function(a){var c=b[a];\"string\"==typeof c&&c.match(z)&&(b[a]=e(c))})}function e(a){return i(z,a,f)}function f(a){var b=g(a);return\"rgb(\"+b[0]+\",\"+b[1]+\",\"+b[2]+\")\"}function g(a){return a=a.replace(/#/,\"\"),3===a.length&&(a=a.split(\"\"),a=a[0]+a[0]+a[1]+a[1]+a[2]+a[2]),B[0]=h(a.substr(0,2)),B[1]=h(a.substr(2,2)),B[2]=h(a.substr(4,2)),B}function h(a){return parseInt(a,16)}function i(a,b,c){var d=b.match(a),e=b.replace(a,A);if(d)for(var f,g=d.length,h=0;g>h;h++)f=d.shift(),e=e.replace(A,c(f));return e}function j(a){return i(x,a,k)}function k(a){for(var b=a.match(w),c=b.length,d=a.match(y)[0],e=0;c>e;e++)d+=parseInt(b[e],10)+\",\";return d=d.slice(0,-1)+\")\"}function l(d){var e={};return a.each(d,function(a){var f=d[a];if(\"string\"==typeof f){var g=r(f);e[a]={formatString:c(f),chunkNames:b(g,a)}}}),e}function m(b,c){a.each(c,function(a){for(var d=b[a],e=r(d),f=e.length,g=0;f>g;g++)b[c[a].chunkNames[g]]=+e[g];delete b[a]})}function n(b,c){a.each(c,function(a){var d=b[a],e=o(b,c[a].chunkNames),f=p(e,c[a].chunkNames);d=q(c[a].formatString,f),b[a]=j(d)})}function o(a,b){for(var c,d={},e=b.length,f=0;e>f;f++)c=b[f],d[c]=a[c],delete a[c];return d}function p(a,b){C.length=0;for(var c=b.length,d=0;c>d;d++)C.push(a[b[d]]);return C}function q(a,b){for(var c=a,d=b.length,e=0;d>e;e++)c=c.replace(A,+b[e].toFixed(4));return c}function r(a){return a.match(w)}function s(b,c){a.each(c,function(a){var d,e=c[a],f=e.chunkNames,g=f.length,h=b[a];if(\"string\"==typeof h){var i=h.split(\" \"),j=i[i.length-1];for(d=0;g>d;d++)b[f[d]]=i[d]||j}else for(d=0;g>d;d++)b[f[d]]=h;delete b[a]})}function t(b,c){a.each(c,function(a){var d=c[a],e=d.chunkNames,f=e.length,g=b[e[0]],h=typeof g;if(\"string\"===h){for(var i=\"\",j=0;f>j;j++)i+=\" \"+b[e[j]],delete b[e[j]];b[a]=i.substr(1)}else b[a]=g})}var u=/(\\d|\\-|\\.)/,v=/([^\\-0-9\\.]+)/g,w=/[0-9.\\-]+/g,x=new RegExp(\"rgb\\\\(\"+w.source+/,\\s*/.source+w.source+/,\\s*/.source+w.source+\"\\\\)\",\"g\"),y=/^.*\\(/,z=/#([0-9]|[a-f]){3,6}/gi,A=\"VAL\",B=[],C=[];a.prototype.filter.token={tweenCreated:function(a,b,c,e){d(a),d(b),d(c),this._tokenData=l(a)},beforeTween:function(a,b,c,d){s(d,this._tokenData),m(a,this._tokenData),m(b,this._tokenData),m(c,this._tokenData)},afterTween:function(a,b,c,d){n(a,this._tokenData),n(b,this._tokenData),n(c,this._tokenData),t(d,this._tokenData)}}}(e)}).call(null)},{}],2:[function(a,b,c){var d=a(\"./shape\"),e=a(\"./utils\"),f=function(a,b){this._pathTemplate=\"M 50,50 m 0,-{radius} a {radius},{radius} 0 1 1 0,{2radius} a {radius},{radius} 0 1 1 0,-{2radius}\",this.containerAspectRatio=1,d.apply(this,arguments)};f.prototype=new d,f.prototype.constructor=f,f.prototype._pathString=function(a){var b=a.strokeWidth;a.trailWidth&&a.trailWidth>a.strokeWidth&&(b=a.trailWidth);var c=50-b/2;return e.render(this._pathTemplate,{radius:c,\"2radius\":2*c})},f.prototype._trailString=function(a){return this._pathString(a)},b.exports=f},{\"./shape\":7,\"./utils\":8}],3:[function(a,b,c){var d=a(\"./shape\"),e=a(\"./utils\"),f=function(a,b){this._pathTemplate=\"M 0,{center} L 100,{center}\",d.apply(this,arguments)};f.prototype=new d,f.prototype.constructor=f,f.prototype._initializeSvg=function(a,b){a.setAttribute(\"viewBox\",\"0 0 100 \"+b.strokeWidth),a.setAttribute(\"preserveAspectRatio\",\"none\")},f.prototype._pathString=function(a){return e.render(this._pathTemplate,{center:a.strokeWidth/2})},f.prototype._trailString=function(a){return this._pathString(a)},b.exports=f},{\"./shape\":7,\"./utils\":8}],4:[function(a,b,c){b.exports={Line:a(\"./line\"),Circle:a(\"./circle\"),SemiCircle:a(\"./semicircle\"),Path:a(\"./path\"),Shape:a(\"./shape\"),utils:a(\"./utils\")}},{\"./circle\":2,\"./line\":3,\"./path\":5,\"./semicircle\":6,\"./shape\":7,\"./utils\":8}],5:[function(a,b,c){var d=a(\"shifty\"),e=a(\"./utils\"),f={easeIn:\"easeInCubic\",easeOut:\"easeOutCubic\",easeInOut:\"easeInOutCubic\"},g=function h(a,b){if(!(this instanceof h))throw new Error(\"Constructor was called without new keyword\");b=e.extend({duration:800,easing:\"linear\",from:{},to:{},step:function(){}},b);var c;c=e.isString(a)?document.querySelector(a):a,this.path=c,this._opts=b,this._tweenable=null;var d=this.path.getTotalLength();this.path.style.strokeDasharray=d+\" \"+d,this.set(0)};g.prototype.value=function(){var a=this._getComputedDashOffset(),b=this.path.getTotalLength(),c=1-a/b;return parseFloat(c.toFixed(6),10)},g.prototype.set=function(a){this.stop(),this.path.style.strokeDashoffset=this._progressToOffset(a);var b=this._opts.step;if(e.isFunction(b)){var c=this._easing(this._opts.easing),d=this._calculateTo(a,c),f=this._opts.shape||this;b(d,f,this._opts.attachment)}},g.prototype.stop=function(){this._stopTween(),this.path.style.strokeDashoffset=this._getComputedDashOffset()},g.prototype.animate=function(a,b,c){b=b||{},e.isFunction(b)&&(c=b,b={});var f=e.extend({},b),g=e.extend({},this._opts);b=e.extend(g,b);var h=this._easing(b.easing),i=this._resolveFromAndTo(a,h,f);this.stop(),this.path.getBoundingClientRect();var j=this._getComputedDashOffset(),k=this._progressToOffset(a),l=this;this._tweenable=new d,this._tweenable.tween({from:e.extend({offset:j},i.from),to:e.extend({offset:k},i.to),duration:b.duration,easing:h,step:function(a){l.path.style.strokeDashoffset=a.offset;var c=b.shape||l;b.step(a,c,b.attachment)},finish:function(a){e.isFunction(c)&&c()}})},g.prototype._getComputedDashOffset=function(){var a=window.getComputedStyle(this.path,null);return parseFloat(a.getPropertyValue(\"stroke-dashoffset\"),10)},g.prototype._progressToOffset=function(a){var b=this.path.getTotalLength();return b-a*b},g.prototype._resolveFromAndTo=function(a,b,c){return c.from&&c.to?{from:c.from,to:c.to}:{from:this._calculateFrom(b),to:this._calculateTo(a,b)}},g.prototype._calculateFrom=function(a){return d.interpolate(this._opts.from,this._opts.to,this.value(),a)},g.prototype._calculateTo=function(a,b){return d.interpolate(this._opts.from,this._opts.to,a,b)},g.prototype._stopTween=function(){null!==this._tweenable&&(this._tweenable.stop(),this._tweenable=null)},g.prototype._easing=function(a){return f.hasOwnProperty(a)?f[a]:a},b.exports=g},{\"./utils\":8,shifty:1}],6:[function(a,b,c){var d=a(\"./shape\"),e=a(\"./circle\"),f=a(\"./utils\"),g=function(a,b){this._pathTemplate=\"M 50,50 m -{radius},0 a {radius},{radius} 0 1 1 {2radius},0\",this.containerAspectRatio=2,d.apply(this,arguments)};g.prototype=new d,g.prototype.constructor=g,g.prototype._initializeSvg=function(a,b){a.setAttribute(\"viewBox\",\"0 0 100 50\")},g.prototype._initializeTextContainer=function(a,b,c){a.text.style&&(c.style.top=\"auto\",c.style.bottom=\"0\",a.text.alignToBottom?f.setStyle(c,\"transform\",\"translate(-50%, 0)\"):f.setStyle(c,\"transform\",\"translate(-50%, 50%)\"))},g.prototype._pathString=e.prototype._pathString,g.prototype._trailString=e.prototype._trailString,b.exports=g},{\"./circle\":2,\"./shape\":7,\"./utils\":8}],7:[function(a,b,c){var d=a(\"./path\"),e=a(\"./utils\"),f=\"Object is destroyed\",g=function h(a,b){if(!(this instanceof h))throw new Error(\"Constructor was called without new keyword\");if(0!==arguments.length){this._opts=e.extend({color:\"#555\",strokeWidth:1,trailColor:null,trailWidth:null,fill:null,text:{style:{color:null,position:\"absolute\",left:\"50%\",top:\"50%\",padding:0,margin:0,transform:{prefix:!0,value:\"translate(-50%, -50%)\"}},autoStyleContainer:!0,alignToBottom:!0,value:null,className:\"progressbar-text\"},svgStyle:{display:\"block\",width:\"100%\"},warnings:!1},b,!0),e.isObject(b)&&void 0!==b.svgStyle&&(this._opts.svgStyle=b.svgStyle),e.isObject(b)&&e.isObject(b.text)&&void 0!==b.text.style&&(this._opts.text.style=b.text.style);var c,f=this._createSvgView(this._opts);if(c=e.isString(a)?document.querySelector(a):a,!c)throw new Error(\"Container does not exist: \"+a);this._container=c,this._container.appendChild(f.svg),this._opts.warnings&&this._warnContainerAspectRatio(this._container),this._opts.svgStyle&&e.setStyles(f.svg,this._opts.svgStyle),this.svg=f.svg,this.path=f.path,this.trail=f.trail,this.text=null;var g=e.extend({attachment:void 0,shape:this},this._opts);this._progressPath=new d(f.path,g),e.isObject(this._opts.text)&&null!==this._opts.text.value&&this.setText(this._opts.text.value)}};g.prototype.animate=function(a,b,c){if(null===this._progressPath)throw new Error(f);this._progressPath.animate(a,b,c)},g.prototype.stop=function(){if(null===this._progressPath)throw new Error(f);void 0!==this._progressPath&&this._progressPath.stop()},g.prototype.destroy=function(){if(null===this._progressPath)throw new Error(f);this.stop(),this.svg.parentNode.removeChild(this.svg),this.svg=null,this.path=null,this.trail=null,this._progressPath=null,null!==this.text&&(this.text.parentNode.removeChild(this.text),this.text=null)},g.prototype.set=function(a){if(null===this._progressPath)throw new Error(f);this._progressPath.set(a)},g.prototype.value=function(){if(null===this._progressPath)throw new Error(f);return void 0===this._progressPath?0:this._progressPath.value()},g.prototype.setText=function(a){if(null===this._progressPath)throw new Error(f);null===this.text&&(this.text=this._createTextContainer(this._opts,this._container),this._container.appendChild(this.text)),e.isObject(a)?(e.removeChildren(this.text),this.text.appendChild(a)):this.text.innerHTML=a},g.prototype._createSvgView=function(a){var b=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");this._initializeSvg(b,a);var c=null;(a.trailColor||a.trailWidth)&&(c=this._createTrail(a),b.appendChild(c));var d=this._createPath(a);return b.appendChild(d),{svg:b,path:d,trail:c}},g.prototype._initializeSvg=function(a,b){a.setAttribute(\"viewBox\",\"0 0 100 100\")},g.prototype._createPath=function(a){var b=this._pathString(a);return this._createPathElement(b,a)},g.prototype._createTrail=function(a){var b=this._trailString(a),c=e.extend({},a);return c.trailColor||(c.trailColor=\"#eee\"),c.trailWidth||(c.trailWidth=c.strokeWidth),c.color=c.trailColor,c.strokeWidth=c.trailWidth,c.fill=null,this._createPathElement(b,c)},g.prototype._createPathElement=function(a,b){var c=document.createElementNS(\"http://www.w3.org/2000/svg\",\"path\");return c.setAttribute(\"d\",a),c.setAttribute(\"stroke\",b.color),c.setAttribute(\"stroke-width\",b.strokeWidth),b.fill?c.setAttribute(\"fill\",b.fill):c.setAttribute(\"fill-opacity\",\"0\"),c},g.prototype._createTextContainer=function(a,b){var c=document.createElement(\"div\");c.className=a.text.className;var d=a.text.style;return d&&(a.text.autoStyleContainer&&(b.style.position=\"relative\"),e.setStyles(c,d),d.color||(c.style.color=a.color)),this._initializeTextContainer(a,b,c),c},g.prototype._initializeTextContainer=function(a,b,c){},g.prototype._pathString=function(a){throw new Error(\"Override this function for each progress bar\")},g.prototype._trailString=function(a){throw new Error(\"Override this function for each progress bar\")},g.prototype._warnContainerAspectRatio=function(a){if(this.containerAspectRatio){var b=window.getComputedStyle(a,null),c=parseFloat(b.getPropertyValue(\"width\"),10),d=parseFloat(b.getPropertyValue(\"height\"),10);e.floatEquals(this.containerAspectRatio,c/d)||(console.warn(\"Incorrect aspect ratio of container\",\"#\"+a.id,\"detected:\",b.getPropertyValue(\"width\")+\"(width)\",\"/\",b.getPropertyValue(\"height\")+\"(height)\",\"=\",c/d),console.warn(\"Aspect ratio of should be\",this.containerAspectRatio))}},b.exports=g},{\"./path\":5,\"./utils\":8}],8:[function(a,b,c){function d(a,b,c){a=a||{},b=b||{},c=c||!1;for(var e in b)if(b.hasOwnProperty(e)){var f=a[e],g=b[e];c&&l(f)&&l(g)?a[e]=d(f,g,c):a[e]=g}return a}function e(a,b){var c=a;for(var d in b)if(b.hasOwnProperty(d)){var e=b[d],f=\"\\\\{\"+d+\"\\\\}\",g=new RegExp(f,\"g\");c=c.replace(g,e)}return c}function f(a,b,c){for(var d=a.style,e=0;e<p.length;++e){var f=p[e];d[f+h(b)]=c}d[b]=c}function g(a,b){m(b,function(b,c){null!==b&&void 0!==b&&(l(b)&&b.prefix===!0?f(a,c,b.value):a.style[c]=b)})}function h(a){return a.charAt(0).toUpperCase()+a.slice(1)}function i(a){return\"string\"==typeof a||a instanceof String}function j(a){return\"function\"==typeof a}function k(a){return\"[object Array]\"===Object.prototype.toString.call(a)}function l(a){if(k(a))return!1;var b=typeof a;return\"object\"===b&&!!a}function m(a,b){for(var c in a)if(a.hasOwnProperty(c)){var d=a[c];b(d,c)}}function n(a,b){return Math.abs(a-b)<q}function o(a){for(;a.firstChild;)a.removeChild(a.firstChild)}var p=\"Webkit Moz O ms\".split(\" \"),q=.001;b.exports={extend:d,render:e,setStyle:f,setStyles:g,capitalize:h,isString:i,isFunction:j,isObject:l,forEachObject:m,floatEquals:n,removeChildren:o}},{}]},{},[4])(4)});\n"
  },
  {
    "path": "progressbarjs/style.css",
    "content": ""
  },
  {
    "path": "pulltorefresh/component.json",
    "content": "{\n  \"name\":\"pulltorefresh\",\n  \"author\": \"BoxFactura\",\n  \"dependencies\": []\n}\n"
  },
  {
    "path": "pulltorefresh/index.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title></title>\n    <link href=\"https://fonts.googleapis.com/css?family=Chewy|Dosis|Raleway:400,700|Roboto:300,400,900,\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n    <link rel=\"stylesheet\" href=\"../base/reset.css\">\n    <link rel=\"stylesheet\" href=\"../base/mobileui.css\">\n    <link rel=\"stylesheet\" href=\"../base/colors.css\">\n    <link rel=\"stylesheet\" href=\"../base/icons.css\">\n    <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n    <style>\n      .content { margin-left:50px}\n    </style>\n    <script type=\"text/javascript\" src=\"../base/base.js\"></script>\n    <script type=\"text/javascript\" src=\"script.js\"></script>\n  </head>\n  <body class=\"content\">\n    <!-- BEGIN -->\n    <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">PullToRefresh</h2>\n    <p>\n      <a href=\"https://github.com/BoxFactura/pulltorefresh.js\" target=\"_blank\">PullToRefresh</a> A small, but powerful Javascript library crafted to power your webapp's pull to refresh feature. No markup needed, highly customizable and dependency-free!\n    </p>\n    <p>\n      To use this component you need install with the command:\n    </p>\n    <pre>mobileui install pulltorefresh</pre>\n    <p>See the PullToRefresh documentation and its resources at <a href=\"https://github.com/BoxFactura/pulltorefresh.js\" target=\"_blank\">github.com/BoxFactura/pulltorefresh.js</a>.</p>\n    <p>See this example:</p>\n<textarea class=\"bind-just-code\" mode=\"text/javascript\">\nPullToRefresh.init({\n  mainElement: '.content',\n  onRefresh: function(){ \n    //Exec code here\n   }\n});\n</textarea>\n    <!-- DONE -->\n    <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n    <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n    <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n    <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "pulltorefresh/script.js",
    "content": "(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory()\n    : typeof define === 'function' && define.amd ? define(factory)\n      : (global.PullToRefresh = factory())\n}(this, function () {\n  function _ptrMarkup () { return '\\n<div class=\"__PREFIX__box\">\\n  <div class=\"__PREFIX__content\">\\n    <div class=\"__PREFIX__icon\"></div>\\n    <div class=\"__PREFIX__text\"></div>\\n  </div>\\n</div>' }\n\n  function _ptrStyles () { return '.__PREFIX__ptr {\\n  box-shadow: inset 0 -3px 5px rgba(0, 0, 0, 0.12);\\n  pointer-events: none;\\n  font-size: 0.85em;\\n  font-weight: bold;\\n  top: 0;\\n  height: 0;\\n  transition: height 0.3s, min-height 0.3s;\\n  text-align: center;\\n  width: 100%;\\n  overflow: hidden;\\n  display: flex;\\n  align-items: flex-end;\\n  align-content: stretch;\\n}\\n.__PREFIX__box {\\n  padding: 10px;\\n  flex-basis: 100%;\\n}\\n.__PREFIX__pull {\\n  transition: none;\\n}\\n.__PREFIX__text {\\n  margin-top: .33em;\\n  color: rgba(0, 0, 0, 0.3);\\n}\\n.__PREFIX__icon {\\n  color: rgba(0, 0, 0, 0.3);\\n  transition: transform .3s;\\n}\\n.__PREFIX__top {\\n  touch-action: pan-x pan-down pinch-zoom;\\n}\\n.__PREFIX__release .__PREFIX__icon {\\n  transform: rotate(180deg);\\n}\\n' }\n\n  var _defaults = {\n    distThreshold: 60,\n    distMax: 80,\n    distReload: 50,\n    bodyOffset: 20,\n    mainElement: 'body',\n    triggerElement: 'body',\n    ptrElement: '.ptr',\n    classPrefix: 'ptr--',\n    cssProp: 'min-height',\n    iconArrow: '&#8675;',\n    iconRefreshing: '&hellip;',\n    instructionsPullToRefresh: 'Pull down to refresh',\n    instructionsReleaseToRefresh: 'Release to refresh',\n    instructionsRefreshing: 'Refreshing',\n    refreshTimeout: 500,\n    getMarkup: _ptrMarkup,\n    getStyles: _ptrStyles,\n    onInit: function () {},\n    onRefresh: function () { return location.reload() },\n    resistanceFunction: function (t) { return Math.min(1, t / 2.5) },\n    shouldPullToRefresh: function () { return !window.scrollY }\n  }\n\n  var _methods = ['mainElement', 'ptrElement', 'triggerElement']\n\n  var _shared = {\n    pullStartY: null,\n    pullMoveY: null,\n    handlers: [],\n    styleEl: null,\n    events: null,\n    dist: 0,\n    state: 'pending',\n    timeout: null,\n    distResisted: 0,\n    supportsPassive: false\n  }\n\n  try {\n    window.addEventListener('test', null, {\n      get passive () { // eslint-disable-line getter-return\n        _shared.supportsPassive = true\n      }\n    })\n  } catch (e) {\n    // do nothing\n  }\n\n  var _ptr = {\n    setupDOM: function setupDOM (handler) {\n      if (!handler.ptrElement) {\n        var ptr = document.createElement('div')\n\n        if (handler.mainElement !== document.body) {\n          handler.mainElement.parentNode.insertBefore(ptr, handler.mainElement)\n        } else {\n          document.body.insertBefore(ptr, document.body.firstChild)\n        }\n\n        ptr.classList.add(((handler.classPrefix) + 'ptr'))\n        ptr.innerHTML = handler.getMarkup()\n          .replace(/__PREFIX__/g, handler.classPrefix)\n\n        handler.ptrElement = ptr\n\n        if (typeof handler.onInit === 'function') {\n          handler.onInit(handler)\n        }\n\n        // Add the css styles to the style node, and then\n        // insert it into the dom\n        if (!_shared.styleEl) {\n          _shared.styleEl = document.createElement('style')\n          _shared.styleEl.setAttribute('id', 'pull-to-refresh-js-style')\n\n          document.head.appendChild(_shared.styleEl)\n        }\n\n        _shared.styleEl.textContent = handler.getStyles()\n          .replace(/__PREFIX__/g, handler.classPrefix)\n          .replace(/\\s+/g, ' ')\n      }\n\n      return handler\n    },\n    onReset: function onReset (handler) {\n      handler.ptrElement.classList.remove(((handler.classPrefix) + 'refresh'))\n      handler.ptrElement.style[handler.cssProp] = '0px'\n\n      setTimeout(function () {\n        // remove previous ptr-element from DOM\n        if (handler.ptrElement && handler.ptrElement.parentNode) {\n          handler.ptrElement.parentNode.removeChild(handler.ptrElement)\n          handler.ptrElement = null\n        }\n\n        // reset state\n        _shared.state = 'pending'\n      }, handler.refreshTimeout)\n    },\n    update: function update (handler) {\n      var iconEl = handler.ptrElement.querySelector(('.' + (handler.classPrefix) + 'icon'))\n      var textEl = handler.ptrElement.querySelector(('.' + (handler.classPrefix) + 'text'))\n\n      if (iconEl) {\n        if (_shared.state === 'refreshing') {\n          iconEl.innerHTML = handler.iconRefreshing\n        } else {\n          iconEl.innerHTML = handler.iconArrow\n        }\n      }\n\n      if (textEl) {\n        if (_shared.state === 'releasing') {\n          textEl.innerHTML = handler.instructionsReleaseToRefresh\n        }\n\n        if (_shared.state === 'pulling' || _shared.state === 'pending') {\n          textEl.innerHTML = handler.instructionsPullToRefresh\n        }\n\n        if (_shared.state === 'refreshing') {\n          textEl.innerHTML = handler.instructionsRefreshing\n        }\n      }\n    }\n  }\n\n  function _setupEvents () {\n    var _el\n\n    function _onTouchStart (e) {\n      // here, we must pick a handler first, and then append their html/css on the DOM\n      var target = _shared.handlers.filter(function (h) { return h.contains(e.target) })[0]\n\n      _shared.enable = !!target\n\n      if (target && _shared.state === 'pending') {\n        _el = _ptr.setupDOM(target)\n\n        if (target.shouldPullToRefresh()) {\n          _shared.pullStartY = e.touches[0].screenY\n        }\n\n        clearTimeout(_shared.timeout)\n\n        _ptr.update(target)\n      }\n    }\n\n    function _onTouchMove (e) {\n      if (!(_el && _el.ptrElement && _shared.enable)) {\n        return\n      }\n\n      if (!_shared.pullStartY) {\n        if (_el.shouldPullToRefresh()) {\n          _shared.pullStartY = e.touches[0].screenY\n        }\n      } else {\n        _shared.pullMoveY = e.touches[0].screenY\n      }\n\n      if (_shared.state === 'refreshing') {\n        if (_el.shouldPullToRefresh() && _shared.pullStartY < _shared.pullMoveY) {\n          e.preventDefault()\n        }\n\n        return\n      }\n\n      if (_shared.state === 'pending') {\n        _el.ptrElement.classList.add(((_el.classPrefix) + 'pull'))\n        _shared.state = 'pulling'\n        _ptr.update(_el)\n      }\n\n      if (_shared.pullStartY && _shared.pullMoveY) {\n        _shared.dist = _shared.pullMoveY - _shared.pullStartY\n      }\n\n      if (_shared.dist > 0) {\n        e.preventDefault()\n\n        _el.ptrElement.style[_el.cssProp] = (_shared.distResisted) + 'px'\n\n        _shared.distResisted = _el.resistanceFunction(_shared.dist / _el.distThreshold) *\n          Math.min(_el.distMax, _shared.dist)\n\n        if (_shared.state === 'pulling' && _shared.distResisted > _el.distThreshold) {\n          _el.ptrElement.classList.add(((_el.classPrefix) + 'release'))\n          _shared.state = 'releasing'\n          _ptr.update(_el)\n        }\n\n        if (_shared.state === 'releasing' && _shared.distResisted < _el.distThreshold) {\n          _el.ptrElement.classList.remove(((_el.classPrefix) + 'release'))\n          _shared.state = 'pulling'\n          _ptr.update(_el)\n        }\n      }\n    }\n\n    function _onTouchEnd () {\n      if (!(_el && _el.ptrElement && _shared.enable)) {\n        return\n      }\n\n      if (_shared.state === 'releasing' && _shared.distResisted > _el.distThreshold) {\n        _shared.state = 'refreshing'\n\n        _el.ptrElement.style[_el.cssProp] = (_el.distReload) + 'px'\n        _el.ptrElement.classList.add(((_el.classPrefix) + 'refresh'))\n\n        _shared.timeout = setTimeout(function () {\n          var retval = _el.onRefresh(function () { return _ptr.onReset(_el) })\n\n          if (retval && typeof retval.then === 'function') {\n            retval.then(function () { return _ptr.onReset(_el) })\n          }\n\n          if (!retval && !_el.onRefresh.length) {\n            _ptr.onReset(_el)\n          }\n        }, _el.refreshTimeout)\n      } else {\n        if (_shared.state === 'refreshing') {\n          return\n        }\n\n        _el.ptrElement.style[_el.cssProp] = '0px'\n\n        _shared.state = 'pending'\n      }\n\n      _ptr.update(_el)\n\n      _el.ptrElement.classList.remove(((_el.classPrefix) + 'release'))\n      _el.ptrElement.classList.remove(((_el.classPrefix) + 'pull'))\n\n      _shared.pullStartY = _shared.pullMoveY = null\n      _shared.dist = _shared.distResisted = 0\n    }\n\n    function _onScroll () {\n      if (_el) {\n        _el.mainElement.classList.toggle(((_el.classPrefix) + 'top'), _el.shouldPullToRefresh())\n      }\n    }\n\n    var _passiveSettings = _shared.supportsPassive\n      ? { passive: _shared.passive || false }\n      : undefined\n\n    window.addEventListener('touchend', _onTouchEnd)\n    window.addEventListener('touchstart', _onTouchStart)\n    window.addEventListener('touchmove', _onTouchMove, _passiveSettings)\n    window.addEventListener('scroll', _onScroll)\n\n    return {\n      onTouchEnd: _onTouchEnd,\n      onTouchStart: _onTouchStart,\n      onTouchMove: _onTouchMove,\n      onScroll: _onScroll,\n\n      destroy: function destroy () {\n        // Teardown event listeners\n        window.removeEventListener('touchstart', _onTouchStart)\n        window.removeEventListener('touchend', _onTouchEnd)\n        window.removeEventListener('touchmove', _onTouchMove, _passiveSettings)\n        window.removeEventListener('scroll', _onScroll)\n      }\n    }\n  }\n\n  function _setupHandler (options) {\n    var _handler = {}\n\n    // merge options with defaults\n    Object.keys(_defaults).forEach(function (key) {\n      _handler[key] = options[key] || _defaults[key]\n    })\n\n    // normalize timeout value, even if it is zero\n    _handler.refreshTimeout = typeof options.refreshTimeout === 'number'\n      ? options.refreshTimeout\n      : _defaults.refreshTimeout\n\n    // normalize elements\n    _methods.forEach(function (method) {\n      if (typeof _handler[method] === 'string') {\n        _handler[method] = document.querySelector(_handler[method])\n      }\n    })\n\n    // attach events lazily\n    if (!_shared.events) {\n      _shared.events = _setupEvents()\n    }\n\n    _handler.contains = function (target) {\n      return _handler.triggerElement.contains(target)\n    }\n\n    _handler.destroy = function () {\n      // stop pending any pending callbacks\n      clearTimeout(_shared.timeout)\n\n      // remove handler from shared state\n      _shared.handlers.splice(_handler.offset, 1)\n    }\n\n    return _handler\n  }\n\n  // public API\n  var index = {\n    setPassiveMode: function setPassiveMode (isPassive) {\n      _shared.passive = isPassive\n    },\n    destroyAll: function destroyAll () {\n      if (_shared.events) {\n        _shared.events.destroy()\n        _shared.events = null\n      }\n\n      _shared.handlers.forEach(function (h) {\n        h.destroy()\n      })\n    },\n    init: function init (options) {\n      if (options === void 0) options = {}\n\n      var handler = _setupHandler(options)\n\n      // store offset for later unsubscription\n      handler.offset = _shared.handlers.push(handler) - 1\n\n      return handler\n    },\n\n    // export utils for testing\n    _: {\n      setupHandler: _setupHandler,\n      setupEvents: _setupEvents,\n      setupDOM: _ptr.setupDOM,\n      onReset: _ptr.onReset,\n      update: _ptr.update\n    }\n  }\n\n  return index\n}))\n"
  },
  {
    "path": "swiper/component.json",
    "content": "{\n  \"name\":\"swiper\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": []\n}\n"
  },
  {
    "path": "swiper/index.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <title></title>\n  <link href=\"https://fonts.googleapis.com/css?family=Dosis|Raleway:400,700|Roboto:300,400,900,\" rel=\"stylesheet\">\n  <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n  <link rel=\"stylesheet\" href=\"../base/reset.css\">\n  <link rel=\"stylesheet\" href=\"../base/mobileui.css\">\n  <link rel=\"stylesheet\" href=\"../base/colors.css\">\n  <link rel=\"stylesheet\" href=\"../base/icons.css\">\n  <link rel=\"stylesheet\" href=\"../header/style.css\">\n  <link rel=\"stylesheet\" href=\"../button/style.css\">\n  <link rel=\"stylesheet\" href=\"../list/style.css\">\n  <link rel=\"stylesheet\" href=\"../cover/style.css\">\n  <link rel=\"stylesheet\" href=\"style.css\">\n  <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n  <style>\n    .content {\n      margin-left: 50px\n    }\n  </style>\n  <script type=\"text/javascript\" src=\"script.js\"></script>\n</head>\n<body class=\"content\">\n  <!-- BEGIN -->\n  <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">Swiper</h2>\n  <p>\n    The Swiper component is a powerful multi-page container where each page can be swiped or dragged between of slides.\n    This component is based on the <a href=\"http://idangero.us/swiper/\" target=\"_blank\">Swiper</a> widget from <a href=\"http://www.idangero.us/\" target=\"_blank\">idangerous</a>.\n  </p>\n  <p>\n    The lib Swiper is the free and most modern mobile touch slider with hardware accelerated transitions and amazing native behavior. It is intended to be used in mobile websites, mobile web apps, and mobile native/hybrid apps. Designed mostly for iOS, but also works great on latest Android, Windows Phone 8 and modern Desktop browsers\n  </p>\n  <p>\n    There is a lot of combination and configuration for use with great elements in your sliders, for this see the <a href=\"http://idangero.us/swiper/api/\" target=\"_blank\">documentation</a> and <a href=\"http://idangero.us/swiper/demos\" target=\"_blank\">examples</a> to use Swiper.\n  </p>\n  <p>\n    To use this component you need install with the command:\n  </p>\n  <pre>mobileui install swiper</pre>\n  <!-- _DOC_GENERATE_CSS_DOC -->\n  <p>\n    For use you need invoke a Swiper lib for create a slide, see a simple example below:\n  </p>\n<textarea class=\"bind-code\" mode=\"text/html\" replace=\"body,div|grey-200,grey-200 body\" height-preview=\"500px\">\n<body>\n  <div class=\"swiper-container swiper-container-fullscreen\">\n      <div class=\"swiper-wrapper\">\n          <!-- Add slide 1 -->\n          <div class=\"swiper-slide vertical-align-center pink-400\">\n            <i class=\"icon ion-beer\"></i>\n            <h1>Hello Beer</h1>\n            <p>The easiest way to order beer from your favorite bar!</p>\n          </div>\n          <!-- Add slide 2 -->\n          <div class=\"swiper-slide vertical-align-center green-600\">\n            <i class=\"icon ion-videocamera\"></i>\n            <h1>Movie Tickets</h1>\n            <p>Book movie tickets for your family and friends!</p>\n          </div>\n          <!-- Add slide 3 -->\n          <div class=\"swiper-slide vertical-align-center blue\">\n            <i class=\"icon ion-pricetag\"></i>\n            <h1>Great Discounts</h1>\n            <p>Best discounts on every single service we offer!</p>\n            <button class=\"border-white text-white radius margin-top\">\n              Login in app now\n            </button>\n          </div>\n\n      </div>\n      <!-- Add Pagination -->\n      <div class=\"swiper-pagination swiper-pagination-white\"></div>\n  </div>\n  <script type=\"text/javascript\">\n    new Swiper('.swiper-container', {\n        pagination: '.swiper-pagination',\n        paginationClickable: true\n    });\n  </script>\n</body></textarea>\n<p>See another example using a <a href=\"#cover\">Cover</a> component.</p>\n<textarea class=\"bind-code\" mode=\"text/html\" replace=\"body,div|grey-200,grey-200 body\" height-preview=\"500px\" border=\"true\">\n<body class=\"grey-100\">\n  <div class=\"swiper-container swipper-gallery\">\n      <div class=\"swiper-wrapper\">\n          <!-- Add slide 1 -->\n          <div class=\"swiper-slide text-white align-center cover black-opacity-30 blend-soft-light\" style=\"background-image:url(../assets/img/cheeseburger1.jpg)\">\n            <h2>Dog Haus</h2>\n            <div class=\"bottom margin-bottom text-shadow padding\">\n              Is offering free upgrades from a single burger to a double available all day long!\n            </div>\n          </div>\n          <!-- Add slide 2 -->\n          <div class=\"swiper-slide text-white align-center cover black-opacity-30 blend-soft-light\" style=\"background-image:url(../assets/img/cheeseburger2.jpg)\">\n            <h2>Johnny Rockets</h2>\n            <div class=\"bottom margin-bottom text-shadow padding\">\n              We forgive you for offering a free hamburger (instead of cheeseburger) in this limited-time special.\n            </div>\n          </div>\n          <!-- Add slide 3 -->\n          <div class=\"swiper-slide text-white align-center cover black-opacity-30 blend-soft-light\" style=\"background-image:url(../assets/img/cheeseburger3.jpg)\">\n            <h2>Applebee’s</h2>\n            <div class=\"bottom margin-bottom text-shadow padding\">\n              eClub members can get a free special entrée on your birthday from any burger on the menu.\n            </div>\n          </div>\n          <!-- Add slide 4 -->\n          <div class=\"swiper-slide text-white align-center cover black-opacity-30 blend-soft-light\" style=\"background-image:url(../assets/img/cheeseburger4.jpg)\">\n            <h2>Burger King</h2>\n            <div class=\"bottom margin-bottom text-shadow padding\">\n              Is offering two extra-long jalapeño cheeseburgers for just $5 until October 15.\n            </div>\n          </div>\n          <!-- Add slide 5 -->\n          <div class=\"swiper-slide text-white align-center cover black-opacity-30 blend-soft-light\" style=\"background-image:url(../assets/img/cheeseburger5.jpg)\">\n            <h2>Select McDonald’s</h2>\n            <div class=\"bottom margin-bottom text-shadow padding\">\n              Including many in Connecticut, western Massachusetts, upstate New York and Vermont.\n            </div>\n          </div>\n\n      </div>\n      <!-- Add Pagination -->\n      <div class=\"swiper-pagination swiper-pagination-white\"></div>\n  </div>\n  <div class=\"padding\">\n    <h1 class=\"text-strong text-big\">CHEESEBURGER</h1>\n    <h2 class=\"text-grey\">Pasadena, California</h2>\n    <p>\n      A cheeseburger is a hamburger topped with cheese. Traditionally, the slice\n      of cheese is placed on top of the meat patty, but the burger can include many\n      variations in structure, ingredients, and composition. The cheese is normally\n      added to the cooking hamburger patty shortly before the patty is entirely\n      cooked, which allows the cheese to melt. As with other hamburgers, a\n      cheeseburger may include toppings, such as lettuce, tomato, onion, pickles,\n      mustard, mayonnaise, ketchup, or bacon.\n    </p>\n  </div>\n  <script type=\"text/javascript\">\n    new Swiper('.swipper-gallery', {\n        pagination: '.swiper-pagination'\n    });\n  </script>\n</body></textarea>\n  <!-- DONE -->\n  <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n  <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n  <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n  <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "swiper/script.js",
    "content": "/**\n * Swiper 3.4.2\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n *\n * http://www.idangero.us/swiper/\n *\n * Copyright 2017, Vladimir Kharlampidi\n * The iDangero.us\n * http://www.idangero.us/\n *\n * Licensed under MIT\n *\n * Released on: March 10, 2017\n */\n(function () {\n    'use strict';\n    var $;\n\n    /*===========================\n    Swiper\n    ===========================*/\n    var Swiper = function (container, params) {\n        if (!(this instanceof Swiper)) return new Swiper(container, params);\n\n\n        var defaults = {\n            direction: 'horizontal',\n            touchEventsTarget: 'container',\n            initialSlide: 0,\n            speed: 300,\n            // autoplay\n            autoplay: false,\n            autoplayDisableOnInteraction: true,\n            autoplayStopOnLast: false,\n            // To support iOS's swipe-to-go-back gesture (when being used in-app, with UIWebView).\n            iOSEdgeSwipeDetection: false,\n            iOSEdgeSwipeThreshold: 20,\n            // Free mode\n            freeMode: false,\n            freeModeMomentum: true,\n            freeModeMomentumRatio: 1,\n            freeModeMomentumBounce: true,\n            freeModeMomentumBounceRatio: 1,\n            freeModeMomentumVelocityRatio: 1,\n            freeModeSticky: false,\n            freeModeMinimumVelocity: 0.02,\n            // Autoheight\n            autoHeight: false,\n            // Set wrapper width\n            setWrapperSize: false,\n            // Virtual Translate\n            virtualTranslate: false,\n            // Effects\n            effect: 'slide', // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n            coverflow: {\n                rotate: 50,\n                stretch: 0,\n                depth: 100,\n                modifier: 1,\n                slideShadows : true\n            },\n            flip: {\n                slideShadows : true,\n                limitRotation: true\n            },\n            cube: {\n                slideShadows: true,\n                shadow: true,\n                shadowOffset: 20,\n                shadowScale: 0.94\n            },\n            fade: {\n                crossFade: false\n            },\n            // Parallax\n            parallax: false,\n            // Zoom\n            zoom: false,\n            zoomMax: 3,\n            zoomMin: 1,\n            zoomToggle: true,\n            // Scrollbar\n            scrollbar: null,\n            scrollbarHide: true,\n            scrollbarDraggable: false,\n            scrollbarSnapOnRelease: false,\n            // Keyboard Mousewheel\n            keyboardControl: false,\n            mousewheelControl: false,\n            mousewheelReleaseOnEdges: false,\n            mousewheelInvert: false,\n            mousewheelForceToAxis: false,\n            mousewheelSensitivity: 1,\n            mousewheelEventsTarged: 'container',\n            // Hash Navigation\n            hashnav: false,\n            hashnavWatchState: false,\n            // History\n            history: false,\n            // Commong Nav State\n            replaceState: false,\n            // Breakpoints\n            breakpoints: undefined,\n            // Slides grid\n            spaceBetween: 0,\n            slidesPerView: 1,\n            slidesPerColumn: 1,\n            slidesPerColumnFill: 'column',\n            slidesPerGroup: 1,\n            centeredSlides: false,\n            slidesOffsetBefore: 0, // in px\n            slidesOffsetAfter: 0, // in px\n            // Round length\n            roundLengths: false,\n            // Touches\n            touchRatio: 1,\n            touchAngle: 45,\n            simulateTouch: true,\n            shortSwipes: true,\n            longSwipes: true,\n            longSwipesRatio: 0.5,\n            longSwipesMs: 300,\n            followFinger: true,\n            onlyExternal: false,\n            threshold: 0,\n            touchMoveStopPropagation: true,\n            touchReleaseOnEdges: false,\n            // Unique Navigation Elements\n            uniqueNavElements: true,\n            // Pagination\n            pagination: null,\n            paginationElement: 'span',\n            paginationClickable: false,\n            paginationHide: false,\n            paginationBulletRender: null,\n            paginationProgressRender: null,\n            paginationFractionRender: null,\n            paginationCustomRender: null,\n            paginationType: 'bullets', // 'bullets' or 'progress' or 'fraction' or 'custom'\n            // Resistance\n            resistance: true,\n            resistanceRatio: 0.85,\n            // Next/prev buttons\n            nextButton: null,\n            prevButton: null,\n            // Progress\n            watchSlidesProgress: false,\n            watchSlidesVisibility: false,\n            // Cursor\n            grabCursor: false,\n            // Clicks\n            preventClicks: true,\n            preventClicksPropagation: true,\n            slideToClickedSlide: false,\n            // Lazy Loading\n            lazyLoading: false,\n            lazyLoadingInPrevNext: false,\n            lazyLoadingInPrevNextAmount: 1,\n            lazyLoadingOnTransitionStart: false,\n            // Images\n            preloadImages: true,\n            updateOnImagesReady: true,\n            // loop\n            loop: false,\n            loopAdditionalSlides: 0,\n            loopedSlides: null,\n            // Control\n            control: undefined,\n            controlInverse: false,\n            controlBy: 'slide', //or 'container'\n            normalizeSlideIndex: true,\n            // Swiping/no swiping\n            allowSwipeToPrev: true,\n            allowSwipeToNext: true,\n            swipeHandler: null, //'.swipe-handler',\n            noSwiping: true,\n            noSwipingClass: 'swiper-no-swiping',\n            // Passive Listeners\n            passiveListeners: true,\n            // NS\n            containerModifierClass: 'swiper-container-', // NEW\n            slideClass: 'swiper-slide',\n            slideActiveClass: 'swiper-slide-active',\n            slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n            slideVisibleClass: 'swiper-slide-visible',\n            slideDuplicateClass: 'swiper-slide-duplicate',\n            slideNextClass: 'swiper-slide-next',\n            slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n            slidePrevClass: 'swiper-slide-prev',\n            slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n            wrapperClass: 'swiper-wrapper',\n            bulletClass: 'swiper-pagination-bullet',\n            bulletActiveClass: 'swiper-pagination-bullet-active',\n            buttonDisabledClass: 'swiper-button-disabled',\n            paginationCurrentClass: 'swiper-pagination-current',\n            paginationTotalClass: 'swiper-pagination-total',\n            paginationHiddenClass: 'swiper-pagination-hidden',\n            paginationProgressbarClass: 'swiper-pagination-progressbar',\n            paginationClickableClass: 'swiper-pagination-clickable', // NEW\n            paginationModifierClass: 'swiper-pagination-', // NEW\n            lazyLoadingClass: 'swiper-lazy',\n            lazyStatusLoadingClass: 'swiper-lazy-loading',\n            lazyStatusLoadedClass: 'swiper-lazy-loaded',\n            lazyPreloaderClass: 'swiper-lazy-preloader',\n            notificationClass: 'swiper-notification',\n            preloaderClass: 'preloader',\n            zoomContainerClass: 'swiper-zoom-container',\n\n            // Observer\n            observer: false,\n            observeParents: false,\n            // Accessibility\n            a11y: false,\n            prevSlideMessage: 'Previous slide',\n            nextSlideMessage: 'Next slide',\n            firstSlideMessage: 'This is the first slide',\n            lastSlideMessage: 'This is the last slide',\n            paginationBulletMessage: 'Go to slide {{index}}',\n            // Callbacks\n            runCallbacksOnInit: true\n            /*\n            Callbacks:\n            onInit: function (swiper)\n            onDestroy: function (swiper)\n            onBeforeResize: function (swiper)\n            onAfterResize: function (swiper)\n            onClick: function (swiper, e)\n            onTap: function (swiper, e)\n            onDoubleTap: function (swiper, e)\n            onSliderMove: function (swiper, e)\n            onSlideChangeStart: function (swiper)\n            onSlideChangeEnd: function (swiper)\n            onTransitionStart: function (swiper)\n            onTransitionEnd: function (swiper)\n            onImagesReady: function (swiper)\n            onProgress: function (swiper, progress)\n            onTouchStart: function (swiper, e)\n            onTouchMove: function (swiper, e)\n            onTouchMoveOpposite: function (swiper, e)\n            onTouchEnd: function (swiper, e)\n            onReachBeginning: function (swiper)\n            onReachEnd: function (swiper)\n            onSetTransition: function (swiper, duration)\n            onSetTranslate: function (swiper, translate)\n            onAutoplayStart: function (swiper)\n            onAutoplayStop: function (swiper),\n            onLazyImageLoad: function (swiper, slide, image)\n            onLazyImageReady: function (swiper, slide, image)\n            onKeyPress: function (swiper, keyCode)\n            */\n\n        };\n        var initialVirtualTranslate = params && params.virtualTranslate;\n\n        params = params || {};\n        var originalParams = {};\n        for (var param in params) {\n            if (typeof params[param] === 'object' && params[param] !== null && !(params[param].nodeType || params[param] === window || params[param] === document || (typeof Dom7 !== 'undefined' && params[param] instanceof Dom7) || (typeof jQuery !== 'undefined' && params[param] instanceof jQuery))) {\n                originalParams[param] = {};\n                for (var deepParam in params[param]) {\n                    originalParams[param][deepParam] = params[param][deepParam];\n                }\n            }\n            else {\n                originalParams[param] = params[param];\n            }\n        }\n        for (var def in defaults) {\n            if (typeof params[def] === 'undefined') {\n                params[def] = defaults[def];\n            }\n            else if (typeof params[def] === 'object') {\n                for (var deepDef in defaults[def]) {\n                    if (typeof params[def][deepDef] === 'undefined') {\n                        params[def][deepDef] = defaults[def][deepDef];\n                    }\n                }\n            }\n        }\n\n        // Swiper\n        var s = this;\n\n        // Params\n        s.params = params;\n        s.originalParams = originalParams;\n\n        // Classname\n        s.classNames = [];\n        /*=========================\n          Dom Library and plugins\n          ===========================*/\n        if (typeof $ !== 'undefined' && typeof Dom7 !== 'undefined'){\n            $ = Dom7;\n        }\n        if (typeof $ === 'undefined') {\n            if (typeof Dom7 === 'undefined') {\n                $ = window.Dom7 || window.Zepto || window.jQuery;\n            }\n            else {\n                $ = Dom7;\n            }\n            if (!$) return;\n        }\n        // Export it to Swiper instance\n        s.$ = $;\n\n        /*=========================\n          Breakpoints\n          ===========================*/\n        s.currentBreakpoint = undefined;\n        s.getActiveBreakpoint = function () {\n            //Get breakpoint for window width\n            if (!s.params.breakpoints) return false;\n            var breakpoint = false;\n            var points = [], point;\n            for ( point in s.params.breakpoints ) {\n                if (s.params.breakpoints.hasOwnProperty(point)) {\n                    points.push(point);\n                }\n            }\n            points.sort(function (a, b) {\n                return parseInt(a, 10) > parseInt(b, 10);\n            });\n            for (var i = 0; i < points.length; i++) {\n                point = points[i];\n                if (point >= window.innerWidth && !breakpoint) {\n                    breakpoint = point;\n                }\n            }\n            return breakpoint || 'max';\n        };\n        s.setBreakpoint = function () {\n            //Set breakpoint for window width and update parameters\n            var breakpoint = s.getActiveBreakpoint();\n            if (breakpoint && s.currentBreakpoint !== breakpoint) {\n                var breakPointsParams = breakpoint in s.params.breakpoints ? s.params.breakpoints[breakpoint] : s.originalParams;\n                var needsReLoop = s.params.loop && (breakPointsParams.slidesPerView !== s.params.slidesPerView);\n                for ( var param in breakPointsParams ) {\n                    s.params[param] = breakPointsParams[param];\n                }\n                s.currentBreakpoint = breakpoint;\n                if(needsReLoop && s.destroyLoop) {\n                    s.reLoop(true);\n                }\n            }\n        };\n        // Set breakpoint on load\n        if (s.params.breakpoints) {\n            s.setBreakpoint();\n        }\n\n        /*=========================\n          Preparation - Define Container, Wrapper and Pagination\n          ===========================*/\n        s.container = $(container);\n        if (s.container.length === 0) return;\n        if (s.container.length > 1) {\n            var swipers = [];\n            s.container.each(function () {\n                var container = this;\n                swipers.push(new Swiper(this, params));\n            });\n            return swipers;\n        }\n\n        // Save instance in container HTML Element and in data\n        s.container[0].swiper = s;\n        s.container.data('swiper', s);\n\n        s.classNames.push(s.params.containerModifierClass + s.params.direction);\n\n        if (s.params.freeMode) {\n            s.classNames.push(s.params.containerModifierClass + 'free-mode');\n        }\n        if (!s.support.flexbox) {\n            s.classNames.push(s.params.containerModifierClass + 'no-flexbox');\n            s.params.slidesPerColumn = 1;\n        }\n        if (s.params.autoHeight) {\n            s.classNames.push(s.params.containerModifierClass + 'autoheight');\n        }\n        // Enable slides progress when required\n        if (s.params.parallax || s.params.watchSlidesVisibility) {\n            s.params.watchSlidesProgress = true;\n        }\n        // Max resistance when touchReleaseOnEdges\n        if (s.params.touchReleaseOnEdges) {\n            s.params.resistanceRatio = 0;\n        }\n        // Coverflow / 3D\n        if (['cube', 'coverflow', 'flip'].indexOf(s.params.effect) >= 0) {\n            if (s.support.transforms3d) {\n                s.params.watchSlidesProgress = true;\n                s.classNames.push(s.params.containerModifierClass + '3d');\n            }\n            else {\n                s.params.effect = 'slide';\n            }\n        }\n        if (s.params.effect !== 'slide') {\n            s.classNames.push(s.params.containerModifierClass + s.params.effect);\n        }\n        if (s.params.effect === 'cube') {\n            s.params.resistanceRatio = 0;\n            s.params.slidesPerView = 1;\n            s.params.slidesPerColumn = 1;\n            s.params.slidesPerGroup = 1;\n            s.params.centeredSlides = false;\n            s.params.spaceBetween = 0;\n            s.params.virtualTranslate = true;\n        }\n        if (s.params.effect === 'fade' || s.params.effect === 'flip') {\n            s.params.slidesPerView = 1;\n            s.params.slidesPerColumn = 1;\n            s.params.slidesPerGroup = 1;\n            s.params.watchSlidesProgress = true;\n            s.params.spaceBetween = 0;\n            if (typeof initialVirtualTranslate === 'undefined') {\n                s.params.virtualTranslate = true;\n            }\n        }\n\n        // Grab Cursor\n        if (s.params.grabCursor && s.support.touch) {\n            s.params.grabCursor = false;\n        }\n\n        // Wrapper\n        s.wrapper = s.container.children('.' + s.params.wrapperClass);\n\n        // Pagination\n        if (s.params.pagination) {\n            s.paginationContainer = $(s.params.pagination);\n            if (s.params.uniqueNavElements && typeof s.params.pagination === 'string' && s.paginationContainer.length > 1 && s.container.find(s.params.pagination).length === 1) {\n                s.paginationContainer = s.container.find(s.params.pagination);\n            }\n\n            if (s.params.paginationType === 'bullets' && s.params.paginationClickable) {\n                s.paginationContainer.addClass(s.params.paginationModifierClass + 'clickable');\n            }\n            else {\n                s.params.paginationClickable = false;\n            }\n            s.paginationContainer.addClass(s.params.paginationModifierClass + s.params.paginationType);\n        }\n        // Next/Prev Buttons\n        if (s.params.nextButton || s.params.prevButton) {\n            if (s.params.nextButton) {\n                s.nextButton = $(s.params.nextButton);\n                if (s.params.uniqueNavElements && typeof s.params.nextButton === 'string' && s.nextButton.length > 1 && s.container.find(s.params.nextButton).length === 1) {\n                    s.nextButton = s.container.find(s.params.nextButton);\n                }\n            }\n            if (s.params.prevButton) {\n                s.prevButton = $(s.params.prevButton);\n                if (s.params.uniqueNavElements && typeof s.params.prevButton === 'string' && s.prevButton.length > 1 && s.container.find(s.params.prevButton).length === 1) {\n                    s.prevButton = s.container.find(s.params.prevButton);\n                }\n            }\n        }\n\n        // Is Horizontal\n        s.isHorizontal = function () {\n            return s.params.direction === 'horizontal';\n        };\n        // s.isH = isH;\n\n        // RTL\n        s.rtl = s.isHorizontal() && (s.container[0].dir.toLowerCase() === 'rtl' || s.container.css('direction') === 'rtl');\n        if (s.rtl) {\n            s.classNames.push(s.params.containerModifierClass + 'rtl');\n        }\n\n        // Wrong RTL support\n        if (s.rtl) {\n            s.wrongRTL = s.wrapper.css('display') === '-webkit-box';\n        }\n\n        // Columns\n        if (s.params.slidesPerColumn > 1) {\n            s.classNames.push(s.params.containerModifierClass + 'multirow');\n        }\n\n        // Check for Android\n        if (s.device.android) {\n            s.classNames.push(s.params.containerModifierClass + 'android');\n        }\n\n        // Add classes\n        s.container.addClass(s.classNames.join(' '));\n\n        // Translate\n        s.translate = 0;\n\n        // Progress\n        s.progress = 0;\n\n        // Velocity\n        s.velocity = 0;\n\n        /*=========================\n          Locks, unlocks\n          ===========================*/\n        s.lockSwipeToNext = function () {\n            s.params.allowSwipeToNext = false;\n            if (s.params.allowSwipeToPrev === false && s.params.grabCursor) {\n                s.unsetGrabCursor();\n            }\n        };\n        s.lockSwipeToPrev = function () {\n            s.params.allowSwipeToPrev = false;\n            if (s.params.allowSwipeToNext === false && s.params.grabCursor) {\n                s.unsetGrabCursor();\n            }\n        };\n        s.lockSwipes = function () {\n            s.params.allowSwipeToNext = s.params.allowSwipeToPrev = false;\n            if (s.params.grabCursor) s.unsetGrabCursor();\n        };\n        s.unlockSwipeToNext = function () {\n            s.params.allowSwipeToNext = true;\n            if (s.params.allowSwipeToPrev === true && s.params.grabCursor) {\n                s.setGrabCursor();\n            }\n        };\n        s.unlockSwipeToPrev = function () {\n            s.params.allowSwipeToPrev = true;\n            if (s.params.allowSwipeToNext === true && s.params.grabCursor) {\n                s.setGrabCursor();\n            }\n        };\n        s.unlockSwipes = function () {\n            s.params.allowSwipeToNext = s.params.allowSwipeToPrev = true;\n            if (s.params.grabCursor) s.setGrabCursor();\n        };\n\n        /*=========================\n          Round helper\n          ===========================*/\n        function round(a) {\n            return Math.floor(a);\n        }\n        /*=========================\n          Set grab cursor\n          ===========================*/\n        s.setGrabCursor = function(moving) {\n            s.container[0].style.cursor = 'move';\n            s.container[0].style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n            s.container[0].style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n            s.container[0].style.cursor = moving ? 'grabbing': 'grab';\n        };\n        s.unsetGrabCursor = function () {\n            s.container[0].style.cursor = '';\n        };\n        if (s.params.grabCursor) {\n            s.setGrabCursor();\n        }\n        /*=========================\n          Update on Images Ready\n          ===========================*/\n        s.imagesToLoad = [];\n        s.imagesLoaded = 0;\n\n        s.loadImage = function (imgElement, src, srcset, sizes, checkForComplete, callback) {\n            var image;\n            function onReady () {\n                if (callback) callback();\n            }\n            if (!imgElement.complete || !checkForComplete) {\n                if (src) {\n                    image = new window.Image();\n                    image.onload = onReady;\n                    image.onerror = onReady;\n                    if (sizes) {\n                        image.sizes = sizes;\n                    }\n                    if (srcset) {\n                        image.srcset = srcset;\n                    }\n                    if (src) {\n                        image.src = src;\n                    }\n                } else {\n                    onReady();\n                }\n\n            } else {//image already loaded...\n                onReady();\n            }\n        };\n        s.preloadImages = function () {\n            s.imagesToLoad = s.container.find('img');\n            function _onReady() {\n                if (typeof s === 'undefined' || s === null || !s) return;\n                if (s.imagesLoaded !== undefined) s.imagesLoaded++;\n                if (s.imagesLoaded === s.imagesToLoad.length) {\n                    if (s.params.updateOnImagesReady) s.update();\n                    s.emit('onImagesReady', s);\n                }\n            }\n            for (var i = 0; i < s.imagesToLoad.length; i++) {\n                s.loadImage(s.imagesToLoad[i], (s.imagesToLoad[i].currentSrc || s.imagesToLoad[i].getAttribute('src')), (s.imagesToLoad[i].srcset || s.imagesToLoad[i].getAttribute('srcset')), s.imagesToLoad[i].sizes || s.imagesToLoad[i].getAttribute('sizes'), true, _onReady);\n            }\n        };\n\n        /*=========================\n          Autoplay\n          ===========================*/\n        s.autoplayTimeoutId = undefined;\n        s.autoplaying = false;\n        s.autoplayPaused = false;\n        function autoplay() {\n            var autoplayDelay = s.params.autoplay;\n            var activeSlide = s.slides.eq(s.activeIndex);\n            if (activeSlide.attr('data-swiper-autoplay')) {\n                autoplayDelay = activeSlide.attr('data-swiper-autoplay') || s.params.autoplay;\n            }\n            s.autoplayTimeoutId = setTimeout(function () {\n                if (s.params.loop) {\n                    s.fixLoop();\n                    s._slideNext();\n                    s.emit('onAutoplay', s);\n                }\n                else {\n                    if (!s.isEnd) {\n                        s._slideNext();\n                        s.emit('onAutoplay', s);\n                    }\n                    else {\n                        if (!params.autoplayStopOnLast) {\n                            s._slideTo(0);\n                            s.emit('onAutoplay', s);\n                        }\n                        else {\n                            s.stopAutoplay();\n                        }\n                    }\n                }\n            }, autoplayDelay);\n        }\n        s.startAutoplay = function () {\n            if (typeof s.autoplayTimeoutId !== 'undefined') return false;\n            if (!s.params.autoplay) return false;\n            if (s.autoplaying) return false;\n            s.autoplaying = true;\n            s.emit('onAutoplayStart', s);\n            autoplay();\n        };\n        s.stopAutoplay = function (internal) {\n            if (!s.autoplayTimeoutId) return;\n            if (s.autoplayTimeoutId) clearTimeout(s.autoplayTimeoutId);\n            s.autoplaying = false;\n            s.autoplayTimeoutId = undefined;\n            s.emit('onAutoplayStop', s);\n        };\n        s.pauseAutoplay = function (speed) {\n            if (s.autoplayPaused) return;\n            if (s.autoplayTimeoutId) clearTimeout(s.autoplayTimeoutId);\n            s.autoplayPaused = true;\n            if (speed === 0) {\n                s.autoplayPaused = false;\n                autoplay();\n            }\n            else {\n                s.wrapper.transitionEnd(function () {\n                    if (!s) return;\n                    s.autoplayPaused = false;\n                    if (!s.autoplaying) {\n                        s.stopAutoplay();\n                    }\n                    else {\n                        autoplay();\n                    }\n                });\n            }\n        };\n        /*=========================\n          Min/Max Translate\n          ===========================*/\n        s.minTranslate = function () {\n            return (-s.snapGrid[0]);\n        };\n        s.maxTranslate = function () {\n            return (-s.snapGrid[s.snapGrid.length - 1]);\n        };\n        /*=========================\n          Slider/slides sizes\n          ===========================*/\n        s.updateAutoHeight = function () {\n            var activeSlides = [];\n            var newHeight = 0;\n            var i;\n\n            // Find slides currently in view\n            if(s.params.slidesPerView !== 'auto' && s.params.slidesPerView > 1) {\n                for (i = 0; i < Math.ceil(s.params.slidesPerView); i++) {\n                    var index = s.activeIndex + i;\n                    if(index > s.slides.length) break;\n                    activeSlides.push(s.slides.eq(index)[0]);\n                }\n            } else {\n                activeSlides.push(s.slides.eq(s.activeIndex)[0]);\n            }\n\n            // Find new height from heighest slide in view\n            for (i = 0; i < activeSlides.length; i++) {\n                if (typeof activeSlides[i] !== 'undefined') {\n                    var height = activeSlides[i].offsetHeight;\n                    newHeight = height > newHeight ? height : newHeight;\n                }\n            }\n\n            // Update Height\n            if (newHeight) s.wrapper.css('height', newHeight + 'px');\n        };\n        s.updateContainerSize = function () {\n            var width, height;\n            if (typeof s.params.width !== 'undefined') {\n                width = s.params.width;\n            }\n            else {\n                width = s.container[0].clientWidth;\n            }\n            if (typeof s.params.height !== 'undefined') {\n                height = s.params.height;\n            }\n            else {\n                height = s.container[0].clientHeight;\n            }\n            if (width === 0 && s.isHorizontal() || height === 0 && !s.isHorizontal()) {\n                return;\n            }\n\n            //Subtract paddings\n            width = width - parseInt(s.container.css('padding-left'), 10) - parseInt(s.container.css('padding-right'), 10);\n            height = height - parseInt(s.container.css('padding-top'), 10) - parseInt(s.container.css('padding-bottom'), 10);\n\n            // Store values\n            s.width = width;\n            s.height = height;\n            s.size = s.isHorizontal() ? s.width : s.height;\n        };\n\n        s.updateSlidesSize = function () {\n            s.slides = s.wrapper.children('.' + s.params.slideClass);\n            s.snapGrid = [];\n            s.slidesGrid = [];\n            s.slidesSizesGrid = [];\n\n            var spaceBetween = s.params.spaceBetween,\n                slidePosition = -s.params.slidesOffsetBefore,\n                i,\n                prevSlideSize = 0,\n                index = 0;\n            if (typeof s.size === 'undefined') return;\n            if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n                spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * s.size;\n            }\n\n            s.virtualSize = -spaceBetween;\n            // reset margins\n            if (s.rtl) s.slides.css({marginLeft: '', marginTop: ''});\n            else s.slides.css({marginRight: '', marginBottom: ''});\n\n            var slidesNumberEvenToRows;\n            if (s.params.slidesPerColumn > 1) {\n                if (Math.floor(s.slides.length / s.params.slidesPerColumn) === s.slides.length / s.params.slidesPerColumn) {\n                    slidesNumberEvenToRows = s.slides.length;\n                }\n                else {\n                    slidesNumberEvenToRows = Math.ceil(s.slides.length / s.params.slidesPerColumn) * s.params.slidesPerColumn;\n                }\n                if (s.params.slidesPerView !== 'auto' && s.params.slidesPerColumnFill === 'row') {\n                    slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, s.params.slidesPerView * s.params.slidesPerColumn);\n                }\n            }\n\n            // Calc slides\n            var slideSize;\n            var slidesPerColumn = s.params.slidesPerColumn;\n            var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n            var numFullColumns = slidesPerRow - (s.params.slidesPerColumn * slidesPerRow - s.slides.length);\n            for (i = 0; i < s.slides.length; i++) {\n                slideSize = 0;\n                var slide = s.slides.eq(i);\n                if (s.params.slidesPerColumn > 1) {\n                    // Set slides order\n                    var newSlideOrderIndex;\n                    var column, row;\n                    if (s.params.slidesPerColumnFill === 'column') {\n                        column = Math.floor(i / slidesPerColumn);\n                        row = i - column * slidesPerColumn;\n                        if (column > numFullColumns || (column === numFullColumns && row === slidesPerColumn-1)) {\n                            if (++row >= slidesPerColumn) {\n                                row = 0;\n                                column++;\n                            }\n                        }\n                        newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;\n                        slide\n                            .css({\n                                '-webkit-box-ordinal-group': newSlideOrderIndex,\n                                '-moz-box-ordinal-group': newSlideOrderIndex,\n                                '-ms-flex-order': newSlideOrderIndex,\n                                '-webkit-order': newSlideOrderIndex,\n                                'order': newSlideOrderIndex\n                            });\n                    }\n                    else {\n                        row = Math.floor(i / slidesPerRow);\n                        column = i - row * slidesPerRow;\n                    }\n                    slide\n                        .css(\n                            'margin-' + (s.isHorizontal() ? 'top' : 'left'),\n                            (row !== 0 && s.params.spaceBetween) && (s.params.spaceBetween + 'px')\n                        )\n                        .attr('data-swiper-column', column)\n                        .attr('data-swiper-row', row);\n\n                }\n                if (slide.css('display') === 'none') continue;\n                if (s.params.slidesPerView === 'auto') {\n                    slideSize = s.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n                    if (s.params.roundLengths) slideSize = round(slideSize);\n                }\n                else {\n                    slideSize = (s.size - (s.params.slidesPerView - 1) * spaceBetween) / s.params.slidesPerView;\n                    if (s.params.roundLengths) slideSize = round(slideSize);\n\n                    if (s.isHorizontal()) {\n                        s.slides[i].style.width = slideSize + 'px';\n                    }\n                    else {\n                        s.slides[i].style.height = slideSize + 'px';\n                    }\n                }\n                s.slides[i].swiperSlideSize = slideSize;\n                s.slidesSizesGrid.push(slideSize);\n\n\n                if (s.params.centeredSlides) {\n                    slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n                    if(prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - s.size / 2 - spaceBetween;\n                    if (i === 0) slidePosition = slidePosition - s.size / 2 - spaceBetween;\n                    if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n                    if ((index) % s.params.slidesPerGroup === 0) s.snapGrid.push(slidePosition);\n                    s.slidesGrid.push(slidePosition);\n                }\n                else {\n                    if ((index) % s.params.slidesPerGroup === 0) s.snapGrid.push(slidePosition);\n                    s.slidesGrid.push(slidePosition);\n                    slidePosition = slidePosition + slideSize + spaceBetween;\n                }\n\n                s.virtualSize += slideSize + spaceBetween;\n\n                prevSlideSize = slideSize;\n\n                index ++;\n            }\n            s.virtualSize = Math.max(s.virtualSize, s.size) + s.params.slidesOffsetAfter;\n            var newSlidesGrid;\n\n            if (\n                s.rtl && s.wrongRTL && (s.params.effect === 'slide' || s.params.effect === 'coverflow')) {\n                s.wrapper.css({width: s.virtualSize + s.params.spaceBetween + 'px'});\n            }\n            if (!s.support.flexbox || s.params.setWrapperSize) {\n                if (s.isHorizontal()) s.wrapper.css({width: s.virtualSize + s.params.spaceBetween + 'px'});\n                else s.wrapper.css({height: s.virtualSize + s.params.spaceBetween + 'px'});\n            }\n\n            if (s.params.slidesPerColumn > 1) {\n                s.virtualSize = (slideSize + s.params.spaceBetween) * slidesNumberEvenToRows;\n                s.virtualSize = Math.ceil(s.virtualSize / s.params.slidesPerColumn) - s.params.spaceBetween;\n                if (s.isHorizontal()) s.wrapper.css({width: s.virtualSize + s.params.spaceBetween + 'px'});\n                else s.wrapper.css({height: s.virtualSize + s.params.spaceBetween + 'px'});\n                if (s.params.centeredSlides) {\n                    newSlidesGrid = [];\n                    for (i = 0; i < s.snapGrid.length; i++) {\n                        if (s.snapGrid[i] < s.virtualSize + s.snapGrid[0]) newSlidesGrid.push(s.snapGrid[i]);\n                    }\n                    s.snapGrid = newSlidesGrid;\n                }\n            }\n\n            // Remove last grid elements depending on width\n            if (!s.params.centeredSlides) {\n                newSlidesGrid = [];\n                for (i = 0; i < s.snapGrid.length; i++) {\n                    if (s.snapGrid[i] <= s.virtualSize - s.size) {\n                        newSlidesGrid.push(s.snapGrid[i]);\n                    }\n                }\n                s.snapGrid = newSlidesGrid;\n                if (Math.floor(s.virtualSize - s.size) - Math.floor(s.snapGrid[s.snapGrid.length - 1]) > 1) {\n                    s.snapGrid.push(s.virtualSize - s.size);\n                }\n            }\n            if (s.snapGrid.length === 0) s.snapGrid = [0];\n\n            if (s.params.spaceBetween !== 0) {\n                if (s.isHorizontal()) {\n                    if (s.rtl) s.slides.css({marginLeft: spaceBetween + 'px'});\n                    else s.slides.css({marginRight: spaceBetween + 'px'});\n                }\n                else s.slides.css({marginBottom: spaceBetween + 'px'});\n            }\n            if (s.params.watchSlidesProgress) {\n                s.updateSlidesOffset();\n            }\n        };\n        s.updateSlidesOffset = function () {\n            for (var i = 0; i < s.slides.length; i++) {\n                s.slides[i].swiperSlideOffset = s.isHorizontal() ? s.slides[i].offsetLeft : s.slides[i].offsetTop;\n            }\n        };\n\n        /*=========================\n          Dynamic Slides Per View\n          ===========================*/\n        s.currentSlidesPerView = function () {\n            var spv = 1, i, j;\n            if (s.params.centeredSlides) {\n                var size = s.slides[s.activeIndex].swiperSlideSize;\n                var breakLoop;\n                for (i = s.activeIndex + 1; i < s.slides.length; i++) {\n                    if (s.slides[i] && !breakLoop) {\n                        size += s.slides[i].swiperSlideSize;\n                        spv ++;\n                        if (size > s.size) breakLoop = true;\n                    }\n                }\n                for (j = s.activeIndex - 1; j >= 0; j--) {\n                    if (s.slides[j] && !breakLoop) {\n                        size += s.slides[j].swiperSlideSize;\n                        spv ++;\n                        if (size > s.size) breakLoop = true;\n                    }\n                }\n            }\n            else {\n                for (i = s.activeIndex + 1; i < s.slides.length; i++) {\n                    if (s.slidesGrid[i] - s.slidesGrid[s.activeIndex] < s.size) {\n                        spv++;\n                    }\n                }\n            }\n            return spv;\n        };\n        /*=========================\n          Slider/slides progress\n          ===========================*/\n        s.updateSlidesProgress = function (translate) {\n            if (typeof translate === 'undefined') {\n                translate = s.translate || 0;\n            }\n            if (s.slides.length === 0) return;\n            if (typeof s.slides[0].swiperSlideOffset === 'undefined') s.updateSlidesOffset();\n\n            var offsetCenter = -translate;\n            if (s.rtl) offsetCenter = translate;\n\n            // Visible Slides\n            s.slides.removeClass(s.params.slideVisibleClass);\n            for (var i = 0; i < s.slides.length; i++) {\n                var slide = s.slides[i];\n                var slideProgress = (offsetCenter + (s.params.centeredSlides ? s.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + s.params.spaceBetween);\n                if (s.params.watchSlidesVisibility) {\n                    var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n                    var slideAfter = slideBefore + s.slidesSizesGrid[i];\n                    var isVisible =\n                        (slideBefore >= 0 && slideBefore < s.size) ||\n                        (slideAfter > 0 && slideAfter <= s.size) ||\n                        (slideBefore <= 0 && slideAfter >= s.size);\n                    if (isVisible) {\n                        s.slides.eq(i).addClass(s.params.slideVisibleClass);\n                    }\n                }\n                slide.progress = s.rtl ? -slideProgress : slideProgress;\n            }\n        };\n        s.updateProgress = function (translate) {\n            if (typeof translate === 'undefined') {\n                translate = s.translate || 0;\n            }\n            var translatesDiff = s.maxTranslate() - s.minTranslate();\n            var wasBeginning = s.isBeginning;\n            var wasEnd = s.isEnd;\n            if (translatesDiff === 0) {\n                s.progress = 0;\n                s.isBeginning = s.isEnd = true;\n            }\n            else {\n                s.progress = (translate - s.minTranslate()) / (translatesDiff);\n                s.isBeginning = s.progress <= 0;\n                s.isEnd = s.progress >= 1;\n            }\n            if (s.isBeginning && !wasBeginning) s.emit('onReachBeginning', s);\n            if (s.isEnd && !wasEnd) s.emit('onReachEnd', s);\n\n            if (s.params.watchSlidesProgress) s.updateSlidesProgress(translate);\n            s.emit('onProgress', s, s.progress);\n        };\n        s.updateActiveIndex = function () {\n            var translate = s.rtl ? s.translate : -s.translate;\n            var newActiveIndex, i, snapIndex;\n            for (i = 0; i < s.slidesGrid.length; i ++) {\n                if (typeof s.slidesGrid[i + 1] !== 'undefined') {\n                    if (translate >= s.slidesGrid[i] && translate < s.slidesGrid[i + 1] - (s.slidesGrid[i + 1] - s.slidesGrid[i]) / 2) {\n                        newActiveIndex = i;\n                    }\n                    else if (translate >= s.slidesGrid[i] && translate < s.slidesGrid[i + 1]) {\n                        newActiveIndex = i + 1;\n                    }\n                }\n                else {\n                    if (translate >= s.slidesGrid[i]) {\n                        newActiveIndex = i;\n                    }\n                }\n            }\n            // Normalize slideIndex\n            if(s.params.normalizeSlideIndex){\n                if (newActiveIndex < 0 || typeof newActiveIndex === 'undefined') newActiveIndex = 0;\n            }\n            // for (i = 0; i < s.slidesGrid.length; i++) {\n                // if (- translate >= s.slidesGrid[i]) {\n                    // newActiveIndex = i;\n                // }\n            // }\n            snapIndex = Math.floor(newActiveIndex / s.params.slidesPerGroup);\n            if (snapIndex >= s.snapGrid.length) snapIndex = s.snapGrid.length - 1;\n\n            if (newActiveIndex === s.activeIndex) {\n                return;\n            }\n            s.snapIndex = snapIndex;\n            s.previousIndex = s.activeIndex;\n            s.activeIndex = newActiveIndex;\n            s.updateClasses();\n            s.updateRealIndex();\n        };\n        s.updateRealIndex = function(){\n            s.realIndex = parseInt(s.slides.eq(s.activeIndex).attr('data-swiper-slide-index') || s.activeIndex, 10);\n        };\n\n        /*=========================\n          Classes\n          ===========================*/\n        s.updateClasses = function () {\n            s.slides.removeClass(s.params.slideActiveClass + ' ' + s.params.slideNextClass + ' ' + s.params.slidePrevClass + ' ' + s.params.slideDuplicateActiveClass + ' ' + s.params.slideDuplicateNextClass + ' ' + s.params.slideDuplicatePrevClass);\n            var activeSlide = s.slides.eq(s.activeIndex);\n            // Active classes\n            activeSlide.addClass(s.params.slideActiveClass);\n            if (params.loop) {\n                // Duplicate to all looped slides\n                if (activeSlide.hasClass(s.params.slideDuplicateClass)) {\n                    s.wrapper.children('.' + s.params.slideClass + ':not(.' + s.params.slideDuplicateClass + ')[data-swiper-slide-index=\"' + s.realIndex + '\"]').addClass(s.params.slideDuplicateActiveClass);\n                }\n                else {\n                    s.wrapper.children('.' + s.params.slideClass + '.' + s.params.slideDuplicateClass + '[data-swiper-slide-index=\"' + s.realIndex + '\"]').addClass(s.params.slideDuplicateActiveClass);\n                }\n            }\n            // Next Slide\n            var nextSlide = activeSlide.next('.' + s.params.slideClass).addClass(s.params.slideNextClass);\n            if (s.params.loop && nextSlide.length === 0) {\n                nextSlide = s.slides.eq(0);\n                nextSlide.addClass(s.params.slideNextClass);\n            }\n            // Prev Slide\n            var prevSlide = activeSlide.prev('.' + s.params.slideClass).addClass(s.params.slidePrevClass);\n            if (s.params.loop && prevSlide.length === 0) {\n                prevSlide = s.slides.eq(-1);\n                prevSlide.addClass(s.params.slidePrevClass);\n            }\n            if (params.loop) {\n                // Duplicate to all looped slides\n                if (nextSlide.hasClass(s.params.slideDuplicateClass)) {\n                    s.wrapper.children('.' + s.params.slideClass + ':not(.' + s.params.slideDuplicateClass + ')[data-swiper-slide-index=\"' + nextSlide.attr('data-swiper-slide-index') + '\"]').addClass(s.params.slideDuplicateNextClass);\n                }\n                else {\n                    s.wrapper.children('.' + s.params.slideClass + '.' + s.params.slideDuplicateClass + '[data-swiper-slide-index=\"' + nextSlide.attr('data-swiper-slide-index') + '\"]').addClass(s.params.slideDuplicateNextClass);\n                }\n                if (prevSlide.hasClass(s.params.slideDuplicateClass)) {\n                    s.wrapper.children('.' + s.params.slideClass + ':not(.' + s.params.slideDuplicateClass + ')[data-swiper-slide-index=\"' + prevSlide.attr('data-swiper-slide-index') + '\"]').addClass(s.params.slideDuplicatePrevClass);\n                }\n                else {\n                    s.wrapper.children('.' + s.params.slideClass + '.' + s.params.slideDuplicateClass + '[data-swiper-slide-index=\"' + prevSlide.attr('data-swiper-slide-index') + '\"]').addClass(s.params.slideDuplicatePrevClass);\n                }\n            }\n\n            // Pagination\n            if (s.paginationContainer && s.paginationContainer.length > 0) {\n                // Current/Total\n                var current,\n                    total = s.params.loop ? Math.ceil((s.slides.length - s.loopedSlides * 2) / s.params.slidesPerGroup) : s.snapGrid.length;\n                if (s.params.loop) {\n                    current = Math.ceil((s.activeIndex - s.loopedSlides)/s.params.slidesPerGroup);\n                    if (current > s.slides.length - 1 - s.loopedSlides * 2) {\n                        current = current - (s.slides.length - s.loopedSlides * 2);\n                    }\n                    if (current > total - 1) current = current - total;\n                    if (current < 0 && s.params.paginationType !== 'bullets') current = total + current;\n                }\n                else {\n                    if (typeof s.snapIndex !== 'undefined') {\n                        current = s.snapIndex;\n                    }\n                    else {\n                        current = s.activeIndex || 0;\n                    }\n                }\n                // Types\n                if (s.params.paginationType === 'bullets' && s.bullets && s.bullets.length > 0) {\n                    s.bullets.removeClass(s.params.bulletActiveClass);\n                    if (s.paginationContainer.length > 1) {\n                        s.bullets.each(function () {\n                            if ($(this).index() === current) $(this).addClass(s.params.bulletActiveClass);\n                        });\n                    }\n                    else {\n                        s.bullets.eq(current).addClass(s.params.bulletActiveClass);\n                    }\n                }\n                if (s.params.paginationType === 'fraction') {\n                    s.paginationContainer.find('.' + s.params.paginationCurrentClass).text(current + 1);\n                    s.paginationContainer.find('.' + s.params.paginationTotalClass).text(total);\n                }\n                if (s.params.paginationType === 'progress') {\n                    var scale = (current + 1) / total,\n                        scaleX = scale,\n                        scaleY = 1;\n                    if (!s.isHorizontal()) {\n                        scaleY = scale;\n                        scaleX = 1;\n                    }\n                    s.paginationContainer.find('.' + s.params.paginationProgressbarClass).transform('translate3d(0,0,0) scaleX(' + scaleX + ') scaleY(' + scaleY + ')').transition(s.params.speed);\n                }\n                if (s.params.paginationType === 'custom' && s.params.paginationCustomRender) {\n                    s.paginationContainer.html(s.params.paginationCustomRender(s, current + 1, total));\n                    s.emit('onPaginationRendered', s, s.paginationContainer[0]);\n                }\n            }\n\n            // Next/active buttons\n            if (!s.params.loop) {\n                if (s.params.prevButton && s.prevButton && s.prevButton.length > 0) {\n                    if (s.isBeginning) {\n                        s.prevButton.addClass(s.params.buttonDisabledClass);\n                        if (s.params.a11y && s.a11y) s.a11y.disable(s.prevButton);\n                    }\n                    else {\n                        s.prevButton.removeClass(s.params.buttonDisabledClass);\n                        if (s.params.a11y && s.a11y) s.a11y.enable(s.prevButton);\n                    }\n                }\n                if (s.params.nextButton && s.nextButton && s.nextButton.length > 0) {\n                    if (s.isEnd) {\n                        s.nextButton.addClass(s.params.buttonDisabledClass);\n                        if (s.params.a11y && s.a11y) s.a11y.disable(s.nextButton);\n                    }\n                    else {\n                        s.nextButton.removeClass(s.params.buttonDisabledClass);\n                        if (s.params.a11y && s.a11y) s.a11y.enable(s.nextButton);\n                    }\n                }\n            }\n        };\n\n        /*=========================\n          Pagination\n          ===========================*/\n        s.updatePagination = function () {\n            if (!s.params.pagination) return;\n            if (s.paginationContainer && s.paginationContainer.length > 0) {\n                var paginationHTML = '';\n                if (s.params.paginationType === 'bullets') {\n                    var numberOfBullets = s.params.loop ? Math.ceil((s.slides.length - s.loopedSlides * 2) / s.params.slidesPerGroup) : s.snapGrid.length;\n                    for (var i = 0; i < numberOfBullets; i++) {\n                        if (s.params.paginationBulletRender) {\n                            paginationHTML += s.params.paginationBulletRender(s, i, s.params.bulletClass);\n                        }\n                        else {\n                            paginationHTML += '<' + s.params.paginationElement+' class=\"' + s.params.bulletClass + '\"></' + s.params.paginationElement + '>';\n                        }\n                    }\n                    s.paginationContainer.html(paginationHTML);\n                    s.bullets = s.paginationContainer.find('.' + s.params.bulletClass);\n                    if (s.params.paginationClickable && s.params.a11y && s.a11y) {\n                        s.a11y.initPagination();\n                    }\n                }\n                if (s.params.paginationType === 'fraction') {\n                    if (s.params.paginationFractionRender) {\n                        paginationHTML = s.params.paginationFractionRender(s, s.params.paginationCurrentClass, s.params.paginationTotalClass);\n                    }\n                    else {\n                        paginationHTML =\n                            '<span class=\"' + s.params.paginationCurrentClass + '\"></span>' +\n                            ' / ' +\n                            '<span class=\"' + s.params.paginationTotalClass+'\"></span>';\n                    }\n                    s.paginationContainer.html(paginationHTML);\n                }\n                if (s.params.paginationType === 'progress') {\n                    if (s.params.paginationProgressRender) {\n                        paginationHTML = s.params.paginationProgressRender(s, s.params.paginationProgressbarClass);\n                    }\n                    else {\n                        paginationHTML = '<span class=\"' + s.params.paginationProgressbarClass + '\"></span>';\n                    }\n                    s.paginationContainer.html(paginationHTML);\n                }\n                if (s.params.paginationType !== 'custom') {\n                    s.emit('onPaginationRendered', s, s.paginationContainer[0]);\n                }\n            }\n        };\n        /*=========================\n          Common update method\n          ===========================*/\n        s.update = function (updateTranslate) {\n            if (!s) return;\n            s.updateContainerSize();\n            s.updateSlidesSize();\n            s.updateProgress();\n            s.updatePagination();\n            s.updateClasses();\n            if (s.params.scrollbar && s.scrollbar) {\n                s.scrollbar.set();\n            }\n            var newTranslate;\n            function forceSetTranslate() {\n                var translate = s.rtl ? -s.translate : s.translate;\n                newTranslate = Math.min(Math.max(s.translate, s.maxTranslate()), s.minTranslate());\n                s.setWrapperTranslate(newTranslate);\n                s.updateActiveIndex();\n                s.updateClasses();\n            }\n            if (updateTranslate) {\n                var translated;\n                if (s.controller && s.controller.spline) {\n                    s.controller.spline = undefined;\n                }\n                if (s.params.freeMode) {\n                    forceSetTranslate();\n                    if (s.params.autoHeight) {\n                        s.updateAutoHeight();\n                    }\n                }\n                else {\n                    if ((s.params.slidesPerView === 'auto' || s.params.slidesPerView > 1) && s.isEnd && !s.params.centeredSlides) {\n                        translated = s.slideTo(s.slides.length - 1, 0, false, true);\n                    }\n                    else {\n                        translated = s.slideTo(s.activeIndex, 0, false, true);\n                    }\n                    if (!translated) {\n                        forceSetTranslate();\n                    }\n                }\n            }\n            else if (s.params.autoHeight) {\n                s.updateAutoHeight();\n            }\n        };\n\n        /*=========================\n          Resize Handler\n          ===========================*/\n        s.onResize = function (forceUpdatePagination) {\n            if (s.params.onBeforeResize) s.params.onBeforeResize(s);\n            //Breakpoints\n            if (s.params.breakpoints) {\n                s.setBreakpoint();\n            }\n\n            // Disable locks on resize\n            var allowSwipeToPrev = s.params.allowSwipeToPrev;\n            var allowSwipeToNext = s.params.allowSwipeToNext;\n            s.params.allowSwipeToPrev = s.params.allowSwipeToNext = true;\n\n            s.updateContainerSize();\n            s.updateSlidesSize();\n            if (s.params.slidesPerView === 'auto' || s.params.freeMode || forceUpdatePagination) s.updatePagination();\n            if (s.params.scrollbar && s.scrollbar) {\n                s.scrollbar.set();\n            }\n            if (s.controller && s.controller.spline) {\n                s.controller.spline = undefined;\n            }\n            var slideChangedBySlideTo = false;\n            if (s.params.freeMode) {\n                var newTranslate = Math.min(Math.max(s.translate, s.maxTranslate()), s.minTranslate());\n                s.setWrapperTranslate(newTranslate);\n                s.updateActiveIndex();\n                s.updateClasses();\n\n                if (s.params.autoHeight) {\n                    s.updateAutoHeight();\n                }\n            }\n            else {\n                s.updateClasses();\n                if ((s.params.slidesPerView === 'auto' || s.params.slidesPerView > 1) && s.isEnd && !s.params.centeredSlides) {\n                    slideChangedBySlideTo = s.slideTo(s.slides.length - 1, 0, false, true);\n                }\n                else {\n                    slideChangedBySlideTo = s.slideTo(s.activeIndex, 0, false, true);\n                }\n            }\n            if (s.params.lazyLoading && !slideChangedBySlideTo && s.lazy) {\n                s.lazy.load();\n            }\n            // Return locks after resize\n            s.params.allowSwipeToPrev = allowSwipeToPrev;\n            s.params.allowSwipeToNext = allowSwipeToNext;\n            if (s.params.onAfterResize) s.params.onAfterResize(s);\n        };\n\n        /*=========================\n          Events\n          ===========================*/\n\n        //Define Touch Events\n        s.touchEventsDesktop = {start: 'mousedown', move: 'mousemove', end: 'mouseup'};\n        if (window.navigator.pointerEnabled) s.touchEventsDesktop = {start: 'pointerdown', move: 'pointermove', end: 'pointerup'};\n        else if (window.navigator.msPointerEnabled) s.touchEventsDesktop = {start: 'MSPointerDown', move: 'MSPointerMove', end: 'MSPointerUp'};\n        s.touchEvents = {\n            start : s.support.touch || !s.params.simulateTouch  ? 'touchstart' : s.touchEventsDesktop.start,\n            move : s.support.touch || !s.params.simulateTouch ? 'touchmove' : s.touchEventsDesktop.move,\n            end : s.support.touch || !s.params.simulateTouch ? 'touchend' : s.touchEventsDesktop.end\n        };\n\n\n        // WP8 Touch Events Fix\n        if (window.navigator.pointerEnabled || window.navigator.msPointerEnabled) {\n            (s.params.touchEventsTarget === 'container' ? s.container : s.wrapper).addClass('swiper-wp8-' + s.params.direction);\n        }\n\n        // Attach/detach events\n        s.initEvents = function (detach) {\n            var actionDom = detach ? 'off' : 'on';\n            var action = detach ? 'removeEventListener' : 'addEventListener';\n            var touchEventsTarget = s.params.touchEventsTarget === 'container' ? s.container[0] : s.wrapper[0];\n            var target = s.support.touch ? touchEventsTarget : document;\n\n            var moveCapture = s.params.nested ? true : false;\n\n            //Touch Events\n            if (s.browser.ie) {\n                touchEventsTarget[action](s.touchEvents.start, s.onTouchStart, false);\n                target[action](s.touchEvents.move, s.onTouchMove, moveCapture);\n                target[action](s.touchEvents.end, s.onTouchEnd, false);\n            }\n            else {\n                if (s.support.touch) {\n                    var passiveListener = s.touchEvents.start === 'touchstart' && s.support.passiveListener && s.params.passiveListeners ? {passive: true, capture: false} : false;\n                    touchEventsTarget[action](s.touchEvents.start, s.onTouchStart, passiveListener);\n                    touchEventsTarget[action](s.touchEvents.move, s.onTouchMove, moveCapture);\n                    touchEventsTarget[action](s.touchEvents.end, s.onTouchEnd, passiveListener);\n                }\n                if ((params.simulateTouch && !s.device.ios && !s.device.android) || (params.simulateTouch && !s.support.touch && s.device.ios)) {\n                    touchEventsTarget[action]('mousedown', s.onTouchStart, false);\n                    document[action]('mousemove', s.onTouchMove, moveCapture);\n                    document[action]('mouseup', s.onTouchEnd, false);\n                }\n            }\n            window[action]('resize', s.onResize);\n\n            // Next, Prev, Index\n            if (s.params.nextButton && s.nextButton && s.nextButton.length > 0) {\n                s.nextButton[actionDom]('click', s.onClickNext);\n                if (s.params.a11y && s.a11y) s.nextButton[actionDom]('keydown', s.a11y.onEnterKey);\n            }\n            if (s.params.prevButton && s.prevButton && s.prevButton.length > 0) {\n                s.prevButton[actionDom]('click', s.onClickPrev);\n                if (s.params.a11y && s.a11y) s.prevButton[actionDom]('keydown', s.a11y.onEnterKey);\n            }\n            if (s.params.pagination && s.params.paginationClickable) {\n                s.paginationContainer[actionDom]('click', '.' + s.params.bulletClass, s.onClickIndex);\n                if (s.params.a11y && s.a11y) s.paginationContainer[actionDom]('keydown', '.' + s.params.bulletClass, s.a11y.onEnterKey);\n            }\n\n            // Prevent Links Clicks\n            if (s.params.preventClicks || s.params.preventClicksPropagation) touchEventsTarget[action]('click', s.preventClicks, true);\n        };\n        s.attachEvents = function () {\n            s.initEvents();\n        };\n        s.detachEvents = function () {\n            s.initEvents(true);\n        };\n\n        /*=========================\n          Handle Clicks\n          ===========================*/\n        // Prevent Clicks\n        s.allowClick = true;\n        s.preventClicks = function (e) {\n            if (!s.allowClick) {\n                if (s.params.preventClicks) e.preventDefault();\n                if (s.params.preventClicksPropagation && s.animating) {\n                    e.stopPropagation();\n                    e.stopImmediatePropagation();\n                }\n            }\n        };\n        // Clicks\n        s.onClickNext = function (e) {\n            e.preventDefault();\n            if (s.isEnd && !s.params.loop) return;\n            s.slideNext();\n        };\n        s.onClickPrev = function (e) {\n            e.preventDefault();\n            if (s.isBeginning && !s.params.loop) return;\n            s.slidePrev();\n        };\n        s.onClickIndex = function (e) {\n            e.preventDefault();\n            var index = $(this).index() * s.params.slidesPerGroup;\n            if (s.params.loop) index = index + s.loopedSlides;\n            s.slideTo(index);\n        };\n\n        /*=========================\n          Handle Touches\n          ===========================*/\n        function findElementInEvent(e, selector) {\n            var el = $(e.target);\n            if (!el.is(selector)) {\n                if (typeof selector === 'string') {\n                    el = el.parents(selector);\n                }\n                else if (selector.nodeType) {\n                    var found;\n                    el.parents().each(function (index, _el) {\n                        if (_el === selector) found = selector;\n                    });\n                    if (!found) return undefined;\n                    else return selector;\n                }\n            }\n            if (el.length === 0) {\n                return undefined;\n            }\n            return el[0];\n        }\n        s.updateClickedSlide = function (e) {\n            var slide = findElementInEvent(e, '.' + s.params.slideClass);\n            var slideFound = false;\n            if (slide) {\n                for (var i = 0; i < s.slides.length; i++) {\n                    if (s.slides[i] === slide) slideFound = true;\n                }\n            }\n\n            if (slide && slideFound) {\n                s.clickedSlide = slide;\n                s.clickedIndex = $(slide).index();\n            }\n            else {\n                s.clickedSlide = undefined;\n                s.clickedIndex = undefined;\n                return;\n            }\n            if (s.params.slideToClickedSlide && s.clickedIndex !== undefined && s.clickedIndex !== s.activeIndex) {\n                var slideToIndex = s.clickedIndex,\n                    realIndex,\n                    duplicatedSlides,\n                    slidesPerView = s.params.slidesPerView === 'auto' ? s.currentSlidesPerView() : s.params.slidesPerView;\n                if (s.params.loop) {\n                    if (s.animating) return;\n                    realIndex = parseInt($(s.clickedSlide).attr('data-swiper-slide-index'), 10);\n                    if (s.params.centeredSlides) {\n                        if ((slideToIndex < s.loopedSlides - slidesPerView/2) || (slideToIndex > s.slides.length - s.loopedSlides + slidesPerView/2)) {\n                            s.fixLoop();\n                            slideToIndex = s.wrapper.children('.' + s.params.slideClass + '[data-swiper-slide-index=\"' + realIndex + '\"]:not(.' + s.params.slideDuplicateClass + ')').eq(0).index();\n                            setTimeout(function () {\n                                s.slideTo(slideToIndex);\n                            }, 0);\n                        }\n                        else {\n                            s.slideTo(slideToIndex);\n                        }\n                    }\n                    else {\n                        if (slideToIndex > s.slides.length - slidesPerView) {\n                            s.fixLoop();\n                            slideToIndex = s.wrapper.children('.' + s.params.slideClass + '[data-swiper-slide-index=\"' + realIndex + '\"]:not(.' + s.params.slideDuplicateClass + ')').eq(0).index();\n                            setTimeout(function () {\n                                s.slideTo(slideToIndex);\n                            }, 0);\n                        }\n                        else {\n                            s.slideTo(slideToIndex);\n                        }\n                    }\n                }\n                else {\n                    s.slideTo(slideToIndex);\n                }\n            }\n        };\n\n        var isTouched,\n            isMoved,\n            allowTouchCallbacks,\n            touchStartTime,\n            isScrolling,\n            currentTranslate,\n            startTranslate,\n            allowThresholdMove,\n            // Form elements to match\n            formElements = 'input, select, textarea, button, video',\n            // Last click time\n            lastClickTime = Date.now(), clickTimeout,\n            //Velocities\n            velocities = [],\n            allowMomentumBounce;\n\n        // Animating Flag\n        s.animating = false;\n\n        // Touches information\n        s.touches = {\n            startX: 0,\n            startY: 0,\n            currentX: 0,\n            currentY: 0,\n            diff: 0\n        };\n\n        // Touch handlers\n        var isTouchEvent, startMoving;\n        s.onTouchStart = function (e) {\n            if (e.originalEvent) e = e.originalEvent;\n            isTouchEvent = e.type === 'touchstart';\n            if (!isTouchEvent && 'which' in e && e.which === 3) return;\n            if (s.params.noSwiping && findElementInEvent(e, '.' + s.params.noSwipingClass)) {\n                s.allowClick = true;\n                return;\n            }\n            if (s.params.swipeHandler) {\n                if (!findElementInEvent(e, s.params.swipeHandler)) return;\n            }\n\n            var startX = s.touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n            var startY = s.touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n\n            // Do NOT start if iOS edge swipe is detected. Otherwise iOS app (UIWebView) cannot swipe-to-go-back anymore\n            if(s.device.ios && s.params.iOSEdgeSwipeDetection && startX <= s.params.iOSEdgeSwipeThreshold) {\n                return;\n            }\n\n            isTouched = true;\n            isMoved = false;\n            allowTouchCallbacks = true;\n            isScrolling = undefined;\n            startMoving = undefined;\n            s.touches.startX = startX;\n            s.touches.startY = startY;\n            touchStartTime = Date.now();\n            s.allowClick = true;\n            s.updateContainerSize();\n            s.swipeDirection = undefined;\n            if (s.params.threshold > 0) allowThresholdMove = false;\n            if (e.type !== 'touchstart') {\n                var preventDefault = true;\n                if ($(e.target).is(formElements)) preventDefault = false;\n                if (document.activeElement && $(document.activeElement).is(formElements)) {\n                    document.activeElement.blur();\n                }\n                if (preventDefault) {\n                    e.preventDefault();\n                }\n            }\n            s.emit('onTouchStart', s, e);\n        };\n\n        s.onTouchMove = function (e) {\n            if (e.originalEvent) e = e.originalEvent;\n            if (isTouchEvent && e.type === 'mousemove') return;\n            if (e.preventedByNestedSwiper) {\n                s.touches.startX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n                s.touches.startY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n                return;\n            }\n            if (s.params.onlyExternal) {\n                // isMoved = true;\n                s.allowClick = false;\n                if (isTouched) {\n                    s.touches.startX = s.touches.currentX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n                    s.touches.startY = s.touches.currentY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n                    touchStartTime = Date.now();\n                }\n                return;\n            }\n            if (isTouchEvent && s.params.touchReleaseOnEdges && !s.params.loop) {\n                if (!s.isHorizontal()) {\n                    // Vertical\n                    if (\n                        (s.touches.currentY < s.touches.startY && s.translate <= s.maxTranslate()) ||\n                        (s.touches.currentY > s.touches.startY && s.translate >= s.minTranslate())\n                        ) {\n                        return;\n                    }\n                }\n                else {\n                    if (\n                        (s.touches.currentX < s.touches.startX && s.translate <= s.maxTranslate()) ||\n                        (s.touches.currentX > s.touches.startX && s.translate >= s.minTranslate())\n                        ) {\n                        return;\n                    }\n                }\n            }\n            if (isTouchEvent && document.activeElement) {\n                if (e.target === document.activeElement && $(e.target).is(formElements)) {\n                    isMoved = true;\n                    s.allowClick = false;\n                    return;\n                }\n            }\n            if (allowTouchCallbacks) {\n                s.emit('onTouchMove', s, e);\n            }\n            if (e.targetTouches && e.targetTouches.length > 1) return;\n\n            s.touches.currentX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n            s.touches.currentY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n            if (typeof isScrolling === 'undefined') {\n                var touchAngle;\n                if (s.isHorizontal() && s.touches.currentY === s.touches.startY || !s.isHorizontal() && s.touches.currentX === s.touches.startX) {\n                    isScrolling = false;\n                }\n                else {\n                    touchAngle = Math.atan2(Math.abs(s.touches.currentY - s.touches.startY), Math.abs(s.touches.currentX - s.touches.startX)) * 180 / Math.PI;\n                    isScrolling = s.isHorizontal() ? touchAngle > s.params.touchAngle : (90 - touchAngle > s.params.touchAngle);\n                }\n            }\n            if (isScrolling) {\n                s.emit('onTouchMoveOpposite', s, e);\n            }\n            if (typeof startMoving === 'undefined') {\n                if (s.touches.currentX !== s.touches.startX || s.touches.currentY !== s.touches.startY) {\n                    startMoving = true;\n                }\n            }\n            if (!isTouched) return;\n            if (isScrolling)  {\n                isTouched = false;\n                return;\n            }\n            if (!startMoving) {\n                return;\n            }\n            s.allowClick = false;\n            s.emit('onSliderMove', s, e);\n            e.preventDefault();\n            if (s.params.touchMoveStopPropagation && !s.params.nested) {\n                e.stopPropagation();\n            }\n\n            if (!isMoved) {\n                if (params.loop) {\n                    s.fixLoop();\n                }\n                startTranslate = s.getWrapperTranslate();\n                s.setWrapperTransition(0);\n                if (s.animating) {\n                    s.wrapper.trigger('webkitTransitionEnd transitionend oTransitionEnd MSTransitionEnd msTransitionEnd');\n                }\n                if (s.params.autoplay && s.autoplaying) {\n                    if (s.params.autoplayDisableOnInteraction) {\n                        s.stopAutoplay();\n                    }\n                    else {\n                        s.pauseAutoplay();\n                    }\n                }\n                allowMomentumBounce = false;\n                //Grab Cursor\n                if (s.params.grabCursor && (s.params.allowSwipeToNext === true || s.params.allowSwipeToPrev === true)) {\n                    s.setGrabCursor(true);\n                }\n            }\n            isMoved = true;\n\n            var diff = s.touches.diff = s.isHorizontal() ? s.touches.currentX - s.touches.startX : s.touches.currentY - s.touches.startY;\n\n            diff = diff * s.params.touchRatio;\n            if (s.rtl) diff = -diff;\n\n            s.swipeDirection = diff > 0 ? 'prev' : 'next';\n            currentTranslate = diff + startTranslate;\n\n            var disableParentSwiper = true;\n            if ((diff > 0 && currentTranslate > s.minTranslate())) {\n                disableParentSwiper = false;\n                if (s.params.resistance) currentTranslate = s.minTranslate() - 1 + Math.pow(-s.minTranslate() + startTranslate + diff, s.params.resistanceRatio);\n            }\n            else if (diff < 0 && currentTranslate < s.maxTranslate()) {\n                disableParentSwiper = false;\n                if (s.params.resistance) currentTranslate = s.maxTranslate() + 1 - Math.pow(s.maxTranslate() - startTranslate - diff, s.params.resistanceRatio);\n            }\n\n            if (disableParentSwiper) {\n                e.preventedByNestedSwiper = true;\n            }\n\n            // Directions locks\n            if (!s.params.allowSwipeToNext && s.swipeDirection === 'next' && currentTranslate < startTranslate) {\n                currentTranslate = startTranslate;\n            }\n            if (!s.params.allowSwipeToPrev && s.swipeDirection === 'prev' && currentTranslate > startTranslate) {\n                currentTranslate = startTranslate;\n            }\n\n\n            // Threshold\n            if (s.params.threshold > 0) {\n                if (Math.abs(diff) > s.params.threshold || allowThresholdMove) {\n                    if (!allowThresholdMove) {\n                        allowThresholdMove = true;\n                        s.touches.startX = s.touches.currentX;\n                        s.touches.startY = s.touches.currentY;\n                        currentTranslate = startTranslate;\n                        s.touches.diff = s.isHorizontal() ? s.touches.currentX - s.touches.startX : s.touches.currentY - s.touches.startY;\n                        return;\n                    }\n                }\n                else {\n                    currentTranslate = startTranslate;\n                    return;\n                }\n            }\n\n            if (!s.params.followFinger) return;\n\n            // Update active index in free mode\n            if (s.params.freeMode || s.params.watchSlidesProgress) {\n                s.updateActiveIndex();\n            }\n            if (s.params.freeMode) {\n                //Velocity\n                if (velocities.length === 0) {\n                    velocities.push({\n                        position: s.touches[s.isHorizontal() ? 'startX' : 'startY'],\n                        time: touchStartTime\n                    });\n                }\n                velocities.push({\n                    position: s.touches[s.isHorizontal() ? 'currentX' : 'currentY'],\n                    time: (new window.Date()).getTime()\n                });\n            }\n            // Update progress\n            s.updateProgress(currentTranslate);\n            // Update translate\n            s.setWrapperTranslate(currentTranslate);\n        };\n        s.onTouchEnd = function (e) {\n            if (e.originalEvent) e = e.originalEvent;\n            if (allowTouchCallbacks) {\n                s.emit('onTouchEnd', s, e);\n            }\n            allowTouchCallbacks = false;\n            if (!isTouched) return;\n            //Return Grab Cursor\n            if (s.params.grabCursor && isMoved && isTouched  && (s.params.allowSwipeToNext === true || s.params.allowSwipeToPrev === true)) {\n                s.setGrabCursor(false);\n            }\n\n            // Time diff\n            var touchEndTime = Date.now();\n            var timeDiff = touchEndTime - touchStartTime;\n\n            // Tap, doubleTap, Click\n            if (s.allowClick) {\n                s.updateClickedSlide(e);\n                s.emit('onTap', s, e);\n                if (timeDiff < 300 && (touchEndTime - lastClickTime) > 300) {\n                    if (clickTimeout) clearTimeout(clickTimeout);\n                    clickTimeout = setTimeout(function () {\n                        if (!s) return;\n                        if (s.params.paginationHide && s.paginationContainer.length > 0 && !$(e.target).hasClass(s.params.bulletClass)) {\n                            s.paginationContainer.toggleClass(s.params.paginationHiddenClass);\n                        }\n                        s.emit('onClick', s, e);\n                    }, 300);\n\n                }\n                if (timeDiff < 300 && (touchEndTime - lastClickTime) < 300) {\n                    if (clickTimeout) clearTimeout(clickTimeout);\n                    s.emit('onDoubleTap', s, e);\n                }\n            }\n\n            lastClickTime = Date.now();\n            setTimeout(function () {\n                if (s) s.allowClick = true;\n            }, 0);\n\n            if (!isTouched || !isMoved || !s.swipeDirection || s.touches.diff === 0 || currentTranslate === startTranslate) {\n                isTouched = isMoved = false;\n                return;\n            }\n            isTouched = isMoved = false;\n\n            var currentPos;\n            if (s.params.followFinger) {\n                currentPos = s.rtl ? s.translate : -s.translate;\n            }\n            else {\n                currentPos = -currentTranslate;\n            }\n            if (s.params.freeMode) {\n                if (currentPos < -s.minTranslate()) {\n                    s.slideTo(s.activeIndex);\n                    return;\n                }\n                else if (currentPos > -s.maxTranslate()) {\n                    if (s.slides.length < s.snapGrid.length) {\n                        s.slideTo(s.snapGrid.length - 1);\n                    }\n                    else {\n                        s.slideTo(s.slides.length - 1);\n                    }\n                    return;\n                }\n\n                if (s.params.freeModeMomentum) {\n                    if (velocities.length > 1) {\n                        var lastMoveEvent = velocities.pop(), velocityEvent = velocities.pop();\n\n                        var distance = lastMoveEvent.position - velocityEvent.position;\n                        var time = lastMoveEvent.time - velocityEvent.time;\n                        s.velocity = distance / time;\n                        s.velocity = s.velocity / 2;\n                        if (Math.abs(s.velocity) < s.params.freeModeMinimumVelocity) {\n                            s.velocity = 0;\n                        }\n                        // this implies that the user stopped moving a finger then released.\n                        // There would be no events with distance zero, so the last event is stale.\n                        if (time > 150 || (new window.Date().getTime() - lastMoveEvent.time) > 300) {\n                            s.velocity = 0;\n                        }\n                    } else {\n                        s.velocity = 0;\n                    }\n                    s.velocity = s.velocity * s.params.freeModeMomentumVelocityRatio;\n\n                    velocities.length = 0;\n                    var momentumDuration = 1000 * s.params.freeModeMomentumRatio;\n                    var momentumDistance = s.velocity * momentumDuration;\n\n                    var newPosition = s.translate + momentumDistance;\n                    if (s.rtl) newPosition = - newPosition;\n                    var doBounce = false;\n                    var afterBouncePosition;\n                    var bounceAmount = Math.abs(s.velocity) * 20 * s.params.freeModeMomentumBounceRatio;\n                    if (newPosition < s.maxTranslate()) {\n                        if (s.params.freeModeMomentumBounce) {\n                            if (newPosition + s.maxTranslate() < -bounceAmount) {\n                                newPosition = s.maxTranslate() - bounceAmount;\n                            }\n                            afterBouncePosition = s.maxTranslate();\n                            doBounce = true;\n                            allowMomentumBounce = true;\n                        }\n                        else {\n                            newPosition = s.maxTranslate();\n                        }\n                    }\n                    else if (newPosition > s.minTranslate()) {\n                        if (s.params.freeModeMomentumBounce) {\n                            if (newPosition - s.minTranslate() > bounceAmount) {\n                                newPosition = s.minTranslate() + bounceAmount;\n                            }\n                            afterBouncePosition = s.minTranslate();\n                            doBounce = true;\n                            allowMomentumBounce = true;\n                        }\n                        else {\n                            newPosition = s.minTranslate();\n                        }\n                    }\n                    else if (s.params.freeModeSticky) {\n                        var j = 0,\n                            nextSlide;\n                        for (j = 0; j < s.snapGrid.length; j += 1) {\n                            if (s.snapGrid[j] > -newPosition) {\n                                nextSlide = j;\n                                break;\n                            }\n\n                        }\n                        if (Math.abs(s.snapGrid[nextSlide] - newPosition) < Math.abs(s.snapGrid[nextSlide - 1] - newPosition) || s.swipeDirection === 'next') {\n                            newPosition = s.snapGrid[nextSlide];\n                        } else {\n                            newPosition = s.snapGrid[nextSlide - 1];\n                        }\n                        if (!s.rtl) newPosition = - newPosition;\n                    }\n                    //Fix duration\n                    if (s.velocity !== 0) {\n                        if (s.rtl) {\n                            momentumDuration = Math.abs((-newPosition - s.translate) / s.velocity);\n                        }\n                        else {\n                            momentumDuration = Math.abs((newPosition - s.translate) / s.velocity);\n                        }\n                    }\n                    else if (s.params.freeModeSticky) {\n                        s.slideReset();\n                        return;\n                    }\n\n                    if (s.params.freeModeMomentumBounce && doBounce) {\n                        s.updateProgress(afterBouncePosition);\n                        s.setWrapperTransition(momentumDuration);\n                        s.setWrapperTranslate(newPosition);\n                        s.onTransitionStart();\n                        s.animating = true;\n                        s.wrapper.transitionEnd(function () {\n                            if (!s || !allowMomentumBounce) return;\n                            s.emit('onMomentumBounce', s);\n\n                            s.setWrapperTransition(s.params.speed);\n                            s.setWrapperTranslate(afterBouncePosition);\n                            s.wrapper.transitionEnd(function () {\n                                if (!s) return;\n                                s.onTransitionEnd();\n                            });\n                        });\n                    } else if (s.velocity) {\n                        s.updateProgress(newPosition);\n                        s.setWrapperTransition(momentumDuration);\n                        s.setWrapperTranslate(newPosition);\n                        s.onTransitionStart();\n                        if (!s.animating) {\n                            s.animating = true;\n                            s.wrapper.transitionEnd(function () {\n                                if (!s) return;\n                                s.onTransitionEnd();\n                            });\n                        }\n\n                    } else {\n                        s.updateProgress(newPosition);\n                    }\n\n                    s.updateActiveIndex();\n                }\n                if (!s.params.freeModeMomentum || timeDiff >= s.params.longSwipesMs) {\n                    s.updateProgress();\n                    s.updateActiveIndex();\n                }\n                return;\n            }\n\n            // Find current slide\n            var i, stopIndex = 0, groupSize = s.slidesSizesGrid[0];\n            for (i = 0; i < s.slidesGrid.length; i += s.params.slidesPerGroup) {\n                if (typeof s.slidesGrid[i + s.params.slidesPerGroup] !== 'undefined') {\n                    if (currentPos >= s.slidesGrid[i] && currentPos < s.slidesGrid[i + s.params.slidesPerGroup]) {\n                        stopIndex = i;\n                        groupSize = s.slidesGrid[i + s.params.slidesPerGroup] - s.slidesGrid[i];\n                    }\n                }\n                else {\n                    if (currentPos >= s.slidesGrid[i]) {\n                        stopIndex = i;\n                        groupSize = s.slidesGrid[s.slidesGrid.length - 1] - s.slidesGrid[s.slidesGrid.length - 2];\n                    }\n                }\n            }\n\n            // Find current slide size\n            var ratio = (currentPos - s.slidesGrid[stopIndex]) / groupSize;\n\n            if (timeDiff > s.params.longSwipesMs) {\n                // Long touches\n                if (!s.params.longSwipes) {\n                    s.slideTo(s.activeIndex);\n                    return;\n                }\n                if (s.swipeDirection === 'next') {\n                    if (ratio >= s.params.longSwipesRatio) s.slideTo(stopIndex + s.params.slidesPerGroup);\n                    else s.slideTo(stopIndex);\n\n                }\n                if (s.swipeDirection === 'prev') {\n                    if (ratio > (1 - s.params.longSwipesRatio)) s.slideTo(stopIndex + s.params.slidesPerGroup);\n                    else s.slideTo(stopIndex);\n                }\n            }\n            else {\n                // Short swipes\n                if (!s.params.shortSwipes) {\n                    s.slideTo(s.activeIndex);\n                    return;\n                }\n                if (s.swipeDirection === 'next') {\n                    s.slideTo(stopIndex + s.params.slidesPerGroup);\n\n                }\n                if (s.swipeDirection === 'prev') {\n                    s.slideTo(stopIndex);\n                }\n            }\n        };\n        /*=========================\n          Transitions\n          ===========================*/\n        s._slideTo = function (slideIndex, speed) {\n            return s.slideTo(slideIndex, speed, true, true);\n        };\n        s.slideTo = function (slideIndex, speed, runCallbacks, internal) {\n            if (typeof runCallbacks === 'undefined') runCallbacks = true;\n            if (typeof slideIndex === 'undefined') slideIndex = 0;\n            if (slideIndex < 0) slideIndex = 0;\n            s.snapIndex = Math.floor(slideIndex / s.params.slidesPerGroup);\n            if (s.snapIndex >= s.snapGrid.length) s.snapIndex = s.snapGrid.length - 1;\n\n            var translate = - s.snapGrid[s.snapIndex];\n            // Stop autoplay\n            if (s.params.autoplay && s.autoplaying) {\n                if (internal || !s.params.autoplayDisableOnInteraction) {\n                    s.pauseAutoplay(speed);\n                }\n                else {\n                    s.stopAutoplay();\n                }\n            }\n            // Update progress\n            s.updateProgress(translate);\n\n            // Normalize slideIndex\n            if(s.params.normalizeSlideIndex){\n                for (var i = 0; i < s.slidesGrid.length; i++) {\n                    if (- Math.floor(translate * 100) >= Math.floor(s.slidesGrid[i] * 100)) {\n                        slideIndex = i;\n                    }\n                }\n            }\n\n            // Directions locks\n            if (!s.params.allowSwipeToNext && translate < s.translate && translate < s.minTranslate()) {\n                return false;\n            }\n            if (!s.params.allowSwipeToPrev && translate > s.translate && translate > s.maxTranslate()) {\n                if ((s.activeIndex || 0) !== slideIndex ) return false;\n            }\n\n            // Update Index\n            if (typeof speed === 'undefined') speed = s.params.speed;\n            s.previousIndex = s.activeIndex || 0;\n            s.activeIndex = slideIndex;\n            s.updateRealIndex();\n            if ((s.rtl && -translate === s.translate) || (!s.rtl && translate === s.translate)) {\n                // Update Height\n                if (s.params.autoHeight) {\n                    s.updateAutoHeight();\n                }\n                s.updateClasses();\n                if (s.params.effect !== 'slide') {\n                    s.setWrapperTranslate(translate);\n                }\n                return false;\n            }\n            s.updateClasses();\n            s.onTransitionStart(runCallbacks);\n\n            if (speed === 0 || s.browser.lteIE9) {\n                s.setWrapperTranslate(translate);\n                s.setWrapperTransition(0);\n                s.onTransitionEnd(runCallbacks);\n            }\n            else {\n                s.setWrapperTranslate(translate);\n                s.setWrapperTransition(speed);\n                if (!s.animating) {\n                    s.animating = true;\n                    s.wrapper.transitionEnd(function () {\n                        if (!s) return;\n                        s.onTransitionEnd(runCallbacks);\n                    });\n                }\n\n            }\n\n            return true;\n        };\n\n        s.onTransitionStart = function (runCallbacks) {\n            if (typeof runCallbacks === 'undefined') runCallbacks = true;\n            if (s.params.autoHeight) {\n                s.updateAutoHeight();\n            }\n            if (s.lazy) s.lazy.onTransitionStart();\n            if (runCallbacks) {\n                s.emit('onTransitionStart', s);\n                if (s.activeIndex !== s.previousIndex) {\n                    s.emit('onSlideChangeStart', s);\n                    if (s.activeIndex > s.previousIndex) {\n                        s.emit('onSlideNextStart', s);\n                    }\n                    else {\n                        s.emit('onSlidePrevStart', s);\n                    }\n                }\n\n            }\n        };\n        s.onTransitionEnd = function (runCallbacks) {\n            s.animating = false;\n            s.setWrapperTransition(0);\n            if (typeof runCallbacks === 'undefined') runCallbacks = true;\n            if (s.lazy) s.lazy.onTransitionEnd();\n            if (runCallbacks) {\n                s.emit('onTransitionEnd', s);\n                if (s.activeIndex !== s.previousIndex) {\n                    s.emit('onSlideChangeEnd', s);\n                    if (s.activeIndex > s.previousIndex) {\n                        s.emit('onSlideNextEnd', s);\n                    }\n                    else {\n                        s.emit('onSlidePrevEnd', s);\n                    }\n                }\n            }\n            if (s.params.history && s.history) {\n                s.history.setHistory(s.params.history, s.activeIndex);\n            }\n            if (s.params.hashnav && s.hashnav) {\n                s.hashnav.setHash();\n            }\n\n        };\n        s.slideNext = function (runCallbacks, speed, internal) {\n            if (s.params.loop) {\n                if (s.animating) return false;\n                s.fixLoop();\n                var clientLeft = s.container[0].clientLeft;\n                return s.slideTo(s.activeIndex + s.params.slidesPerGroup, speed, runCallbacks, internal);\n            }\n            else return s.slideTo(s.activeIndex + s.params.slidesPerGroup, speed, runCallbacks, internal);\n        };\n        s._slideNext = function (speed) {\n            return s.slideNext(true, speed, true);\n        };\n        s.slidePrev = function (runCallbacks, speed, internal) {\n            if (s.params.loop) {\n                if (s.animating) return false;\n                s.fixLoop();\n                var clientLeft = s.container[0].clientLeft;\n                return s.slideTo(s.activeIndex - 1, speed, runCallbacks, internal);\n            }\n            else return s.slideTo(s.activeIndex - 1, speed, runCallbacks, internal);\n        };\n        s._slidePrev = function (speed) {\n            return s.slidePrev(true, speed, true);\n        };\n        s.slideReset = function (runCallbacks, speed, internal) {\n            return s.slideTo(s.activeIndex, speed, runCallbacks);\n        };\n\n        s.disableTouchControl = function () {\n            s.params.onlyExternal = true;\n            return true;\n        };\n        s.enableTouchControl = function () {\n            s.params.onlyExternal = false;\n            return true;\n        };\n\n        /*=========================\n          Translate/transition helpers\n          ===========================*/\n        s.setWrapperTransition = function (duration, byController) {\n            s.wrapper.transition(duration);\n            if (s.params.effect !== 'slide' && s.effects[s.params.effect]) {\n                s.effects[s.params.effect].setTransition(duration);\n            }\n            if (s.params.parallax && s.parallax) {\n                s.parallax.setTransition(duration);\n            }\n            if (s.params.scrollbar && s.scrollbar) {\n                s.scrollbar.setTransition(duration);\n            }\n            if (s.params.control && s.controller) {\n                s.controller.setTransition(duration, byController);\n            }\n            s.emit('onSetTransition', s, duration);\n        };\n        s.setWrapperTranslate = function (translate, updateActiveIndex, byController) {\n            var x = 0, y = 0, z = 0;\n            if (s.isHorizontal()) {\n                x = s.rtl ? -translate : translate;\n            }\n            else {\n                y = translate;\n            }\n\n            if (s.params.roundLengths) {\n                x = round(x);\n                y = round(y);\n            }\n\n            if (!s.params.virtualTranslate) {\n                if (s.support.transforms3d) s.wrapper.transform('translate3d(' + x + 'px, ' + y + 'px, ' + z + 'px)');\n                else s.wrapper.transform('translate(' + x + 'px, ' + y + 'px)');\n            }\n\n            s.translate = s.isHorizontal() ? x : y;\n\n            // Check if we need to update progress\n            var progress;\n            var translatesDiff = s.maxTranslate() - s.minTranslate();\n            if (translatesDiff === 0) {\n                progress = 0;\n            }\n            else {\n                progress = (translate - s.minTranslate()) / (translatesDiff);\n            }\n            if (progress !== s.progress) {\n                s.updateProgress(translate);\n            }\n\n            if (updateActiveIndex) s.updateActiveIndex();\n            if (s.params.effect !== 'slide' && s.effects[s.params.effect]) {\n                s.effects[s.params.effect].setTranslate(s.translate);\n            }\n            if (s.params.parallax && s.parallax) {\n                s.parallax.setTranslate(s.translate);\n            }\n            if (s.params.scrollbar && s.scrollbar) {\n                s.scrollbar.setTranslate(s.translate);\n            }\n            if (s.params.control && s.controller) {\n                s.controller.setTranslate(s.translate, byController);\n            }\n            s.emit('onSetTranslate', s, s.translate);\n        };\n\n        s.getTranslate = function (el, axis) {\n            var matrix, curTransform, curStyle, transformMatrix;\n\n            // automatic axis detection\n            if (typeof axis === 'undefined') {\n                axis = 'x';\n            }\n\n            if (s.params.virtualTranslate) {\n                return s.rtl ? -s.translate : s.translate;\n            }\n\n            curStyle = window.getComputedStyle(el, null);\n            if (window.WebKitCSSMatrix) {\n                curTransform = curStyle.transform || curStyle.webkitTransform;\n                if (curTransform.split(',').length > 6) {\n                    curTransform = curTransform.split(', ').map(function(a){\n                        return a.replace(',','.');\n                    }).join(', ');\n                }\n                // Some old versions of Webkit choke when 'none' is passed; pass\n                // empty string instead in this case\n                transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n            }\n            else {\n                transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform  || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n                matrix = transformMatrix.toString().split(',');\n            }\n\n            if (axis === 'x') {\n                //Latest Chrome and webkits Fix\n                if (window.WebKitCSSMatrix)\n                    curTransform = transformMatrix.m41;\n                //Crazy IE10 Matrix\n                else if (matrix.length === 16)\n                    curTransform = parseFloat(matrix[12]);\n                //Normal Browsers\n                else\n                    curTransform = parseFloat(matrix[4]);\n            }\n            if (axis === 'y') {\n                //Latest Chrome and webkits Fix\n                if (window.WebKitCSSMatrix)\n                    curTransform = transformMatrix.m42;\n                //Crazy IE10 Matrix\n                else if (matrix.length === 16)\n                    curTransform = parseFloat(matrix[13]);\n                //Normal Browsers\n                else\n                    curTransform = parseFloat(matrix[5]);\n            }\n            if (s.rtl && curTransform) curTransform = -curTransform;\n            return curTransform || 0;\n        };\n        s.getWrapperTranslate = function (axis) {\n            if (typeof axis === 'undefined') {\n                axis = s.isHorizontal() ? 'x' : 'y';\n            }\n            return s.getTranslate(s.wrapper[0], axis);\n        };\n\n        /*=========================\n          Observer\n          ===========================*/\n        s.observers = [];\n        function initObserver(target, options) {\n            options = options || {};\n            // create an observer instance\n            var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n            var observer = new ObserverFunc(function (mutations) {\n                mutations.forEach(function (mutation) {\n                    s.onResize(true);\n                    s.emit('onObserverUpdate', s, mutation);\n                });\n            });\n\n            observer.observe(target, {\n                attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n                childList: typeof options.childList === 'undefined' ? true : options.childList,\n                characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n            });\n\n            s.observers.push(observer);\n        }\n        s.initObservers = function () {\n            if (s.params.observeParents) {\n                var containerParents = s.container.parents();\n                for (var i = 0; i < containerParents.length; i++) {\n                    initObserver(containerParents[i]);\n                }\n            }\n\n            // Observe container\n            initObserver(s.container[0], {childList: false});\n\n            // Observe wrapper\n            initObserver(s.wrapper[0], {attributes: false});\n        };\n        s.disconnectObservers = function () {\n            for (var i = 0; i < s.observers.length; i++) {\n                s.observers[i].disconnect();\n            }\n            s.observers = [];\n        };\n        /*=========================\n          Loop\n          ===========================*/\n        // Create looped slides\n        s.createLoop = function () {\n            // Remove duplicated slides\n            s.wrapper.children('.' + s.params.slideClass + '.' + s.params.slideDuplicateClass).remove();\n\n            var slides = s.wrapper.children('.' + s.params.slideClass);\n\n            if(s.params.slidesPerView === 'auto' && !s.params.loopedSlides) s.params.loopedSlides = slides.length;\n\n            s.loopedSlides = parseInt(s.params.loopedSlides || s.params.slidesPerView, 10);\n            s.loopedSlides = s.loopedSlides + s.params.loopAdditionalSlides;\n            if (s.loopedSlides > slides.length) {\n                s.loopedSlides = slides.length;\n            }\n\n            var prependSlides = [], appendSlides = [], i;\n            slides.each(function (index, el) {\n                var slide = $(this);\n                if (index < s.loopedSlides) appendSlides.push(el);\n                if (index < slides.length && index >= slides.length - s.loopedSlides) prependSlides.push(el);\n                slide.attr('data-swiper-slide-index', index);\n            });\n            for (i = 0; i < appendSlides.length; i++) {\n                s.wrapper.append($(appendSlides[i].cloneNode(true)).addClass(s.params.slideDuplicateClass));\n            }\n            for (i = prependSlides.length - 1; i >= 0; i--) {\n                s.wrapper.prepend($(prependSlides[i].cloneNode(true)).addClass(s.params.slideDuplicateClass));\n            }\n        };\n        s.destroyLoop = function () {\n            s.wrapper.children('.' + s.params.slideClass + '.' + s.params.slideDuplicateClass).remove();\n            s.slides.removeAttr('data-swiper-slide-index');\n        };\n        s.reLoop = function (updatePosition) {\n            var oldIndex = s.activeIndex - s.loopedSlides;\n            s.destroyLoop();\n            s.createLoop();\n            s.updateSlidesSize();\n            if (updatePosition) {\n                s.slideTo(oldIndex + s.loopedSlides, 0, false);\n            }\n\n        };\n        s.fixLoop = function () {\n            var newIndex;\n            //Fix For Negative Oversliding\n            if (s.activeIndex < s.loopedSlides) {\n                newIndex = s.slides.length - s.loopedSlides * 3 + s.activeIndex;\n                newIndex = newIndex + s.loopedSlides;\n                s.slideTo(newIndex, 0, false, true);\n            }\n            //Fix For Positive Oversliding\n            else if ((s.params.slidesPerView === 'auto' && s.activeIndex >= s.loopedSlides * 2) || (s.activeIndex > s.slides.length - s.params.slidesPerView * 2)) {\n                newIndex = -s.slides.length + s.activeIndex + s.loopedSlides;\n                newIndex = newIndex + s.loopedSlides;\n                s.slideTo(newIndex, 0, false, true);\n            }\n        };\n        /*=========================\n          Append/Prepend/Remove Slides\n          ===========================*/\n        s.appendSlide = function (slides) {\n            if (s.params.loop) {\n                s.destroyLoop();\n            }\n            if (typeof slides === 'object' && slides.length) {\n                for (var i = 0; i < slides.length; i++) {\n                    if (slides[i]) s.wrapper.append(slides[i]);\n                }\n            }\n            else {\n                s.wrapper.append(slides);\n            }\n            if (s.params.loop) {\n                s.createLoop();\n            }\n            if (!(s.params.observer && s.support.observer)) {\n                s.update(true);\n            }\n        };\n        s.prependSlide = function (slides) {\n            if (s.params.loop) {\n                s.destroyLoop();\n            }\n            var newActiveIndex = s.activeIndex + 1;\n            if (typeof slides === 'object' && slides.length) {\n                for (var i = 0; i < slides.length; i++) {\n                    if (slides[i]) s.wrapper.prepend(slides[i]);\n                }\n                newActiveIndex = s.activeIndex + slides.length;\n            }\n            else {\n                s.wrapper.prepend(slides);\n            }\n            if (s.params.loop) {\n                s.createLoop();\n            }\n            if (!(s.params.observer && s.support.observer)) {\n                s.update(true);\n            }\n            s.slideTo(newActiveIndex, 0, false);\n        };\n        s.removeSlide = function (slidesIndexes) {\n            if (s.params.loop) {\n                s.destroyLoop();\n                s.slides = s.wrapper.children('.' + s.params.slideClass);\n            }\n            var newActiveIndex = s.activeIndex,\n                indexToRemove;\n            if (typeof slidesIndexes === 'object' && slidesIndexes.length) {\n                for (var i = 0; i < slidesIndexes.length; i++) {\n                    indexToRemove = slidesIndexes[i];\n                    if (s.slides[indexToRemove]) s.slides.eq(indexToRemove).remove();\n                    if (indexToRemove < newActiveIndex) newActiveIndex--;\n                }\n                newActiveIndex = Math.max(newActiveIndex, 0);\n            }\n            else {\n                indexToRemove = slidesIndexes;\n                if (s.slides[indexToRemove]) s.slides.eq(indexToRemove).remove();\n                if (indexToRemove < newActiveIndex) newActiveIndex--;\n                newActiveIndex = Math.max(newActiveIndex, 0);\n            }\n\n            if (s.params.loop) {\n                s.createLoop();\n            }\n\n            if (!(s.params.observer && s.support.observer)) {\n                s.update(true);\n            }\n            if (s.params.loop) {\n                s.slideTo(newActiveIndex + s.loopedSlides, 0, false);\n            }\n            else {\n                s.slideTo(newActiveIndex, 0, false);\n            }\n\n        };\n        s.removeAllSlides = function () {\n            var slidesIndexes = [];\n            for (var i = 0; i < s.slides.length; i++) {\n                slidesIndexes.push(i);\n            }\n            s.removeSlide(slidesIndexes);\n        };\n\n\n        /*=========================\n          Effects\n          ===========================*/\n        s.effects = {\n            fade: {\n                setTranslate: function () {\n                    for (var i = 0; i < s.slides.length; i++) {\n                        var slide = s.slides.eq(i);\n                        var offset = slide[0].swiperSlideOffset;\n                        var tx = -offset;\n                        if (!s.params.virtualTranslate) tx = tx - s.translate;\n                        var ty = 0;\n                        if (!s.isHorizontal()) {\n                            ty = tx;\n                            tx = 0;\n                        }\n                        var slideOpacity = s.params.fade.crossFade ?\n                                Math.max(1 - Math.abs(slide[0].progress), 0) :\n                                1 + Math.min(Math.max(slide[0].progress, -1), 0);\n                        slide\n                            .css({\n                                opacity: slideOpacity\n                            })\n                            .transform('translate3d(' + tx + 'px, ' + ty + 'px, 0px)');\n\n                    }\n\n                },\n                setTransition: function (duration) {\n                    s.slides.transition(duration);\n                    if (s.params.virtualTranslate && duration !== 0) {\n                        var eventTriggered = false;\n                        s.slides.transitionEnd(function () {\n                            if (eventTriggered) return;\n                            if (!s) return;\n                            eventTriggered = true;\n                            s.animating = false;\n                            var triggerEvents = ['webkitTransitionEnd', 'transitionend', 'oTransitionEnd', 'MSTransitionEnd', 'msTransitionEnd'];\n                            for (var i = 0; i < triggerEvents.length; i++) {\n                                s.wrapper.trigger(triggerEvents[i]);\n                            }\n                        });\n                    }\n                }\n            },\n            flip: {\n                setTranslate: function () {\n                    for (var i = 0; i < s.slides.length; i++) {\n                        var slide = s.slides.eq(i);\n                        var progress = slide[0].progress;\n                        if (s.params.flip.limitRotation) {\n                            progress = Math.max(Math.min(slide[0].progress, 1), -1);\n                        }\n                        var offset = slide[0].swiperSlideOffset;\n                        var rotate = -180 * progress,\n                            rotateY = rotate,\n                            rotateX = 0,\n                            tx = -offset,\n                            ty = 0;\n                        if (!s.isHorizontal()) {\n                            ty = tx;\n                            tx = 0;\n                            rotateX = -rotateY;\n                            rotateY = 0;\n                        }\n                        else if (s.rtl) {\n                            rotateY = -rotateY;\n                        }\n\n                        slide[0].style.zIndex = -Math.abs(Math.round(progress)) + s.slides.length;\n\n                        if (s.params.flip.slideShadows) {\n                            //Set shadows\n                            var shadowBefore = s.isHorizontal() ? slide.find('.swiper-slide-shadow-left') : slide.find('.swiper-slide-shadow-top');\n                            var shadowAfter = s.isHorizontal() ? slide.find('.swiper-slide-shadow-right') : slide.find('.swiper-slide-shadow-bottom');\n                            if (shadowBefore.length === 0) {\n                                shadowBefore = $('<div class=\"swiper-slide-shadow-' + (s.isHorizontal() ? 'left' : 'top') + '\"></div>');\n                                slide.append(shadowBefore);\n                            }\n                            if (shadowAfter.length === 0) {\n                                shadowAfter = $('<div class=\"swiper-slide-shadow-' + (s.isHorizontal() ? 'right' : 'bottom') + '\"></div>');\n                                slide.append(shadowAfter);\n                            }\n                            if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n                            if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n                        }\n\n                        slide\n                            .transform('translate3d(' + tx + 'px, ' + ty + 'px, 0px) rotateX(' + rotateX + 'deg) rotateY(' + rotateY + 'deg)');\n                    }\n                },\n                setTransition: function (duration) {\n                    s.slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n                    if (s.params.virtualTranslate && duration !== 0) {\n                        var eventTriggered = false;\n                        s.slides.eq(s.activeIndex).transitionEnd(function () {\n                            if (eventTriggered) return;\n                            if (!s) return;\n                            if (!$(this).hasClass(s.params.slideActiveClass)) return;\n                            eventTriggered = true;\n                            s.animating = false;\n                            var triggerEvents = ['webkitTransitionEnd', 'transitionend', 'oTransitionEnd', 'MSTransitionEnd', 'msTransitionEnd'];\n                            for (var i = 0; i < triggerEvents.length; i++) {\n                                s.wrapper.trigger(triggerEvents[i]);\n                            }\n                        });\n                    }\n                }\n            },\n            cube: {\n                setTranslate: function () {\n                    var wrapperRotate = 0, cubeShadow;\n                    if (s.params.cube.shadow) {\n                        if (s.isHorizontal()) {\n                            cubeShadow = s.wrapper.find('.swiper-cube-shadow');\n                            if (cubeShadow.length === 0) {\n                                cubeShadow = $('<div class=\"swiper-cube-shadow\"></div>');\n                                s.wrapper.append(cubeShadow);\n                            }\n                            cubeShadow.css({height: s.width + 'px'});\n                        }\n                        else {\n                            cubeShadow = s.container.find('.swiper-cube-shadow');\n                            if (cubeShadow.length === 0) {\n                                cubeShadow = $('<div class=\"swiper-cube-shadow\"></div>');\n                                s.container.append(cubeShadow);\n                            }\n                        }\n                    }\n                    for (var i = 0; i < s.slides.length; i++) {\n                        var slide = s.slides.eq(i);\n                        var slideAngle = i * 90;\n                        var round = Math.floor(slideAngle / 360);\n                        if (s.rtl) {\n                            slideAngle = -slideAngle;\n                            round = Math.floor(-slideAngle / 360);\n                        }\n                        var progress = Math.max(Math.min(slide[0].progress, 1), -1);\n                        var tx = 0, ty = 0, tz = 0;\n                        if (i % 4 === 0) {\n                            tx = - round * 4 * s.size;\n                            tz = 0;\n                        }\n                        else if ((i - 1) % 4 === 0) {\n                            tx = 0;\n                            tz = - round * 4 * s.size;\n                        }\n                        else if ((i - 2) % 4 === 0) {\n                            tx = s.size + round * 4 * s.size;\n                            tz = s.size;\n                        }\n                        else if ((i - 3) % 4 === 0) {\n                            tx = - s.size;\n                            tz = 3 * s.size + s.size * 4 * round;\n                        }\n                        if (s.rtl) {\n                            tx = -tx;\n                        }\n\n                        if (!s.isHorizontal()) {\n                            ty = tx;\n                            tx = 0;\n                        }\n\n                        var transform = 'rotateX(' + (s.isHorizontal() ? 0 : -slideAngle) + 'deg) rotateY(' + (s.isHorizontal() ? slideAngle : 0) + 'deg) translate3d(' + tx + 'px, ' + ty + 'px, ' + tz + 'px)';\n                        if (progress <= 1 && progress > -1) {\n                            wrapperRotate = i * 90 + progress * 90;\n                            if (s.rtl) wrapperRotate = -i * 90 - progress * 90;\n                        }\n                        slide.transform(transform);\n                        if (s.params.cube.slideShadows) {\n                            //Set shadows\n                            var shadowBefore = s.isHorizontal() ? slide.find('.swiper-slide-shadow-left') : slide.find('.swiper-slide-shadow-top');\n                            var shadowAfter = s.isHorizontal() ? slide.find('.swiper-slide-shadow-right') : slide.find('.swiper-slide-shadow-bottom');\n                            if (shadowBefore.length === 0) {\n                                shadowBefore = $('<div class=\"swiper-slide-shadow-' + (s.isHorizontal() ? 'left' : 'top') + '\"></div>');\n                                slide.append(shadowBefore);\n                            }\n                            if (shadowAfter.length === 0) {\n                                shadowAfter = $('<div class=\"swiper-slide-shadow-' + (s.isHorizontal() ? 'right' : 'bottom') + '\"></div>');\n                                slide.append(shadowAfter);\n                            }\n                            if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n                            if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n                        }\n                    }\n                    s.wrapper.css({\n                        '-webkit-transform-origin': '50% 50% -' + (s.size / 2) + 'px',\n                        '-moz-transform-origin': '50% 50% -' + (s.size / 2) + 'px',\n                        '-ms-transform-origin': '50% 50% -' + (s.size / 2) + 'px',\n                        'transform-origin': '50% 50% -' + (s.size / 2) + 'px'\n                    });\n\n                    if (s.params.cube.shadow) {\n                        if (s.isHorizontal()) {\n                            cubeShadow.transform('translate3d(0px, ' + (s.width / 2 + s.params.cube.shadowOffset) + 'px, ' + (-s.width / 2) + 'px) rotateX(90deg) rotateZ(0deg) scale(' + (s.params.cube.shadowScale) + ')');\n                        }\n                        else {\n                            var shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n                            var multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n                            var scale1 = s.params.cube.shadowScale,\n                                scale2 = s.params.cube.shadowScale / multiplier,\n                                offset = s.params.cube.shadowOffset;\n                            cubeShadow.transform('scale3d(' + scale1 + ', 1, ' + scale2 + ') translate3d(0px, ' + (s.height / 2 + offset) + 'px, ' + (-s.height / 2 / scale2) + 'px) rotateX(-90deg)');\n                        }\n                    }\n                    var zFactor = (s.isSafari || s.isUiWebView) ? (-s.size / 2) : 0;\n                    s.wrapper.transform('translate3d(0px,0,' + zFactor + 'px) rotateX(' + (s.isHorizontal() ? 0 : wrapperRotate) + 'deg) rotateY(' + (s.isHorizontal() ? -wrapperRotate : 0) + 'deg)');\n                },\n                setTransition: function (duration) {\n                    s.slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n                    if (s.params.cube.shadow && !s.isHorizontal()) {\n                        s.container.find('.swiper-cube-shadow').transition(duration);\n                    }\n                }\n            },\n            coverflow: {\n                setTranslate: function () {\n                    var transform = s.translate;\n                    var center = s.isHorizontal() ? -transform + s.width / 2 : -transform + s.height / 2;\n                    var rotate = s.isHorizontal() ? s.params.coverflow.rotate: -s.params.coverflow.rotate;\n                    var translate = s.params.coverflow.depth;\n                    //Each slide offset from center\n                    for (var i = 0, length = s.slides.length; i < length; i++) {\n                        var slide = s.slides.eq(i);\n                        var slideSize = s.slidesSizesGrid[i];\n                        var slideOffset = slide[0].swiperSlideOffset;\n                        var offsetMultiplier = (center - slideOffset - slideSize / 2) / slideSize * s.params.coverflow.modifier;\n\n                        var rotateY = s.isHorizontal() ? rotate * offsetMultiplier : 0;\n                        var rotateX = s.isHorizontal() ? 0 : rotate * offsetMultiplier;\n                        // var rotateZ = 0\n                        var translateZ = -translate * Math.abs(offsetMultiplier);\n\n                        var translateY = s.isHorizontal() ? 0 : s.params.coverflow.stretch * (offsetMultiplier);\n                        var translateX = s.isHorizontal() ? s.params.coverflow.stretch * (offsetMultiplier) : 0;\n\n                        //Fix for ultra small values\n                        if (Math.abs(translateX) < 0.001) translateX = 0;\n                        if (Math.abs(translateY) < 0.001) translateY = 0;\n                        if (Math.abs(translateZ) < 0.001) translateZ = 0;\n                        if (Math.abs(rotateY) < 0.001) rotateY = 0;\n                        if (Math.abs(rotateX) < 0.001) rotateX = 0;\n\n                        var slideTransform = 'translate3d(' + translateX + 'px,' + translateY + 'px,' + translateZ + 'px)  rotateX(' + rotateX + 'deg) rotateY(' + rotateY + 'deg)';\n\n                        slide.transform(slideTransform);\n                        slide[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n                        if (s.params.coverflow.slideShadows) {\n                            //Set shadows\n                            var shadowBefore = s.isHorizontal() ? slide.find('.swiper-slide-shadow-left') : slide.find('.swiper-slide-shadow-top');\n                            var shadowAfter = s.isHorizontal() ? slide.find('.swiper-slide-shadow-right') : slide.find('.swiper-slide-shadow-bottom');\n                            if (shadowBefore.length === 0) {\n                                shadowBefore = $('<div class=\"swiper-slide-shadow-' + (s.isHorizontal() ? 'left' : 'top') + '\"></div>');\n                                slide.append(shadowBefore);\n                            }\n                            if (shadowAfter.length === 0) {\n                                shadowAfter = $('<div class=\"swiper-slide-shadow-' + (s.isHorizontal() ? 'right' : 'bottom') + '\"></div>');\n                                slide.append(shadowAfter);\n                            }\n                            if (shadowBefore.length) shadowBefore[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n                            if (shadowAfter.length) shadowAfter[0].style.opacity = (-offsetMultiplier) > 0 ? -offsetMultiplier : 0;\n                        }\n                    }\n\n                    //Set correct perspective for IE10\n                    if (s.browser.ie) {\n                        var ws = s.wrapper[0].style;\n                        ws.perspectiveOrigin = center + 'px 50%';\n                    }\n                },\n                setTransition: function (duration) {\n                    s.slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n                }\n            }\n        };\n\n\n        /*=========================\n          Images Lazy Loading\n          ===========================*/\n        s.lazy = {\n            initialImageLoaded: false,\n            loadImageInSlide: function (index, loadInDuplicate) {\n                if (typeof index === 'undefined') return;\n                if (typeof loadInDuplicate === 'undefined') loadInDuplicate = true;\n                if (s.slides.length === 0) return;\n\n                var slide = s.slides.eq(index);\n                var img = slide.find('.' + s.params.lazyLoadingClass + ':not(.' + s.params.lazyStatusLoadedClass + '):not(.' + s.params.lazyStatusLoadingClass + ')');\n                if (slide.hasClass(s.params.lazyLoadingClass) && !slide.hasClass(s.params.lazyStatusLoadedClass) && !slide.hasClass(s.params.lazyStatusLoadingClass)) {\n                    img = img.add(slide[0]);\n                }\n                if (img.length === 0) return;\n\n                img.each(function () {\n                    var _img = $(this);\n                    _img.addClass(s.params.lazyStatusLoadingClass);\n                    var background = _img.attr('data-background');\n                    var src = _img.attr('data-src'),\n                        srcset = _img.attr('data-srcset'),\n                        sizes = _img.attr('data-sizes');\n                    s.loadImage(_img[0], (src || background), srcset, sizes, false, function () {\n                        if (typeof s === 'undefined' || s === null || !s) return;\n                        if (background) {\n                            _img.css('background-image', 'url(\"' + background + '\")');\n                            _img.removeAttr('data-background');\n                        }\n                        else {\n                            if (srcset) {\n                                _img.attr('srcset', srcset);\n                                _img.removeAttr('data-srcset');\n                            }\n                            if (sizes) {\n                                _img.attr('sizes', sizes);\n                                _img.removeAttr('data-sizes');\n                            }\n                            if (src) {\n                                _img.attr('src', src);\n                                _img.removeAttr('data-src');\n                            }\n\n                        }\n\n                        _img.addClass(s.params.lazyStatusLoadedClass).removeClass(s.params.lazyStatusLoadingClass);\n                        slide.find('.' + s.params.lazyPreloaderClass + ', .' + s.params.preloaderClass).remove();\n                        if (s.params.loop && loadInDuplicate) {\n                            var slideOriginalIndex = slide.attr('data-swiper-slide-index');\n                            if (slide.hasClass(s.params.slideDuplicateClass)) {\n                                var originalSlide = s.wrapper.children('[data-swiper-slide-index=\"' + slideOriginalIndex + '\"]:not(.' + s.params.slideDuplicateClass + ')');\n                                s.lazy.loadImageInSlide(originalSlide.index(), false);\n                            }\n                            else {\n                                var duplicatedSlide = s.wrapper.children('.' + s.params.slideDuplicateClass + '[data-swiper-slide-index=\"' + slideOriginalIndex + '\"]');\n                                s.lazy.loadImageInSlide(duplicatedSlide.index(), false);\n                            }\n                        }\n                        s.emit('onLazyImageReady', s, slide[0], _img[0]);\n                    });\n\n                    s.emit('onLazyImageLoad', s, slide[0], _img[0]);\n                });\n\n            },\n            load: function () {\n                var i;\n                var slidesPerView = s.params.slidesPerView;\n                if (slidesPerView === 'auto') {\n                    slidesPerView = 0;\n                }\n                if (!s.lazy.initialImageLoaded) s.lazy.initialImageLoaded = true;\n                if (s.params.watchSlidesVisibility) {\n                    s.wrapper.children('.' + s.params.slideVisibleClass).each(function () {\n                        s.lazy.loadImageInSlide($(this).index());\n                    });\n                }\n                else {\n                    if (slidesPerView > 1) {\n                        for (i = s.activeIndex; i < s.activeIndex + slidesPerView ; i++) {\n                            if (s.slides[i]) s.lazy.loadImageInSlide(i);\n                        }\n                    }\n                    else {\n                        s.lazy.loadImageInSlide(s.activeIndex);\n                    }\n                }\n                if (s.params.lazyLoadingInPrevNext) {\n                    if (slidesPerView > 1 || (s.params.lazyLoadingInPrevNextAmount && s.params.lazyLoadingInPrevNextAmount > 1)) {\n                        var amount = s.params.lazyLoadingInPrevNextAmount;\n                        var spv = slidesPerView;\n                        var maxIndex = Math.min(s.activeIndex + spv + Math.max(amount, spv), s.slides.length);\n                        var minIndex = Math.max(s.activeIndex - Math.max(spv, amount), 0);\n                        // Next Slides\n                        for (i = s.activeIndex + slidesPerView; i < maxIndex; i++) {\n                            if (s.slides[i]) s.lazy.loadImageInSlide(i);\n                        }\n                        // Prev Slides\n                        for (i = minIndex; i < s.activeIndex ; i++) {\n                            if (s.slides[i]) s.lazy.loadImageInSlide(i);\n                        }\n                    }\n                    else {\n                        var nextSlide = s.wrapper.children('.' + s.params.slideNextClass);\n                        if (nextSlide.length > 0) s.lazy.loadImageInSlide(nextSlide.index());\n\n                        var prevSlide = s.wrapper.children('.' + s.params.slidePrevClass);\n                        if (prevSlide.length > 0) s.lazy.loadImageInSlide(prevSlide.index());\n                    }\n                }\n            },\n            onTransitionStart: function () {\n                if (s.params.lazyLoading) {\n                    if (s.params.lazyLoadingOnTransitionStart || (!s.params.lazyLoadingOnTransitionStart && !s.lazy.initialImageLoaded)) {\n                        s.lazy.load();\n                    }\n                }\n            },\n            onTransitionEnd: function () {\n                if (s.params.lazyLoading && !s.params.lazyLoadingOnTransitionStart) {\n                    s.lazy.load();\n                }\n            }\n        };\n\n\n        /*=========================\n          Scrollbar\n          ===========================*/\n        s.scrollbar = {\n            isTouched: false,\n            setDragPosition: function (e) {\n                var sb = s.scrollbar;\n                var x = 0, y = 0;\n                var translate;\n                var pointerPosition = s.isHorizontal() ?\n                    ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].pageX : e.pageX || e.clientX) :\n                    ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].pageY : e.pageY || e.clientY) ;\n                var position = (pointerPosition) - sb.track.offset()[s.isHorizontal() ? 'left' : 'top'] - sb.dragSize / 2;\n                var positionMin = -s.minTranslate() * sb.moveDivider;\n                var positionMax = -s.maxTranslate() * sb.moveDivider;\n                if (position < positionMin) {\n                    position = positionMin;\n                }\n                else if (position > positionMax) {\n                    position = positionMax;\n                }\n                position = -position / sb.moveDivider;\n                s.updateProgress(position);\n                s.setWrapperTranslate(position, true);\n            },\n            dragStart: function (e) {\n                var sb = s.scrollbar;\n                sb.isTouched = true;\n                e.preventDefault();\n                e.stopPropagation();\n\n                sb.setDragPosition(e);\n                clearTimeout(sb.dragTimeout);\n\n                sb.track.transition(0);\n                if (s.params.scrollbarHide) {\n                    sb.track.css('opacity', 1);\n                }\n                s.wrapper.transition(100);\n                sb.drag.transition(100);\n                s.emit('onScrollbarDragStart', s);\n            },\n            dragMove: function (e) {\n                var sb = s.scrollbar;\n                if (!sb.isTouched) return;\n                if (e.preventDefault) e.preventDefault();\n                else e.returnValue = false;\n                sb.setDragPosition(e);\n                s.wrapper.transition(0);\n                sb.track.transition(0);\n                sb.drag.transition(0);\n                s.emit('onScrollbarDragMove', s);\n            },\n            dragEnd: function (e) {\n                var sb = s.scrollbar;\n                if (!sb.isTouched) return;\n                sb.isTouched = false;\n                if (s.params.scrollbarHide) {\n                    clearTimeout(sb.dragTimeout);\n                    sb.dragTimeout = setTimeout(function () {\n                        sb.track.css('opacity', 0);\n                        sb.track.transition(400);\n                    }, 1000);\n\n                }\n                s.emit('onScrollbarDragEnd', s);\n                if (s.params.scrollbarSnapOnRelease) {\n                    s.slideReset();\n                }\n            },\n            draggableEvents: (function () {\n                if ((s.params.simulateTouch === false && !s.support.touch)) return s.touchEventsDesktop;\n                else return s.touchEvents;\n            })(),\n            enableDraggable: function () {\n                var sb = s.scrollbar;\n                var target = s.support.touch ? sb.track : document;\n                $(sb.track).on(sb.draggableEvents.start, sb.dragStart);\n                $(target).on(sb.draggableEvents.move, sb.dragMove);\n                $(target).on(sb.draggableEvents.end, sb.dragEnd);\n            },\n            disableDraggable: function () {\n                var sb = s.scrollbar;\n                var target = s.support.touch ? sb.track : document;\n                $(sb.track).off(sb.draggableEvents.start, sb.dragStart);\n                $(target).off(sb.draggableEvents.move, sb.dragMove);\n                $(target).off(sb.draggableEvents.end, sb.dragEnd);\n            },\n            set: function () {\n                if (!s.params.scrollbar) return;\n                var sb = s.scrollbar;\n                sb.track = $(s.params.scrollbar);\n                if (s.params.uniqueNavElements && typeof s.params.scrollbar === 'string' && sb.track.length > 1 && s.container.find(s.params.scrollbar).length === 1) {\n                    sb.track = s.container.find(s.params.scrollbar);\n                }\n                sb.drag = sb.track.find('.swiper-scrollbar-drag');\n                if (sb.drag.length === 0) {\n                    sb.drag = $('<div class=\"swiper-scrollbar-drag\"></div>');\n                    sb.track.append(sb.drag);\n                }\n                sb.drag[0].style.width = '';\n                sb.drag[0].style.height = '';\n                sb.trackSize = s.isHorizontal() ? sb.track[0].offsetWidth : sb.track[0].offsetHeight;\n\n                sb.divider = s.size / s.virtualSize;\n                sb.moveDivider = sb.divider * (sb.trackSize / s.size);\n                sb.dragSize = sb.trackSize * sb.divider;\n\n                if (s.isHorizontal()) {\n                    sb.drag[0].style.width = sb.dragSize + 'px';\n                }\n                else {\n                    sb.drag[0].style.height = sb.dragSize + 'px';\n                }\n\n                if (sb.divider >= 1) {\n                    sb.track[0].style.display = 'none';\n                }\n                else {\n                    sb.track[0].style.display = '';\n                }\n                if (s.params.scrollbarHide) {\n                    sb.track[0].style.opacity = 0;\n                }\n            },\n            setTranslate: function () {\n                if (!s.params.scrollbar) return;\n                var diff;\n                var sb = s.scrollbar;\n                var translate = s.translate || 0;\n                var newPos;\n\n                var newSize = sb.dragSize;\n                newPos = (sb.trackSize - sb.dragSize) * s.progress;\n                if (s.rtl && s.isHorizontal()) {\n                    newPos = -newPos;\n                    if (newPos > 0) {\n                        newSize = sb.dragSize - newPos;\n                        newPos = 0;\n                    }\n                    else if (-newPos + sb.dragSize > sb.trackSize) {\n                        newSize = sb.trackSize + newPos;\n                    }\n                }\n                else {\n                    if (newPos < 0) {\n                        newSize = sb.dragSize + newPos;\n                        newPos = 0;\n                    }\n                    else if (newPos + sb.dragSize > sb.trackSize) {\n                        newSize = sb.trackSize - newPos;\n                    }\n                }\n                if (s.isHorizontal()) {\n                    if (s.support.transforms3d) {\n                        sb.drag.transform('translate3d(' + (newPos) + 'px, 0, 0)');\n                    }\n                    else {\n                        sb.drag.transform('translateX(' + (newPos) + 'px)');\n                    }\n                    sb.drag[0].style.width = newSize + 'px';\n                }\n                else {\n                    if (s.support.transforms3d) {\n                        sb.drag.transform('translate3d(0px, ' + (newPos) + 'px, 0)');\n                    }\n                    else {\n                        sb.drag.transform('translateY(' + (newPos) + 'px)');\n                    }\n                    sb.drag[0].style.height = newSize + 'px';\n                }\n                if (s.params.scrollbarHide) {\n                    clearTimeout(sb.timeout);\n                    sb.track[0].style.opacity = 1;\n                    sb.timeout = setTimeout(function () {\n                        sb.track[0].style.opacity = 0;\n                        sb.track.transition(400);\n                    }, 1000);\n                }\n            },\n            setTransition: function (duration) {\n                if (!s.params.scrollbar) return;\n                s.scrollbar.drag.transition(duration);\n            }\n        };\n\n\n        /*=========================\n          Controller\n          ===========================*/\n        s.controller = {\n            LinearSpline: function (x, y) {\n                var binarySearch = (function() {\n                    var maxIndex, minIndex, guess;\n                    return function(array, val) {\n                        minIndex = -1;\n                        maxIndex = array.length;\n                        while (maxIndex - minIndex > 1)\n                            if (array[guess = maxIndex + minIndex >> 1] <= val) {\n                                minIndex = guess;\n                            } else {\n                                maxIndex = guess;\n                            }\n                        return maxIndex;\n                    };\n                })();\n                this.x = x;\n                this.y = y;\n                this.lastIndex = x.length - 1;\n                // Given an x value (x2), return the expected y2 value:\n                // (x1,y1) is the known point before given value,\n                // (x3,y3) is the known point after given value.\n                var i1, i3;\n                var l = this.x.length;\n\n                this.interpolate = function (x2) {\n                    if (!x2) return 0;\n\n                    // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n                    i3 = binarySearch(this.x, x2);\n                    i1 = i3 - 1;\n\n                    // We have our indexes i1 & i3, so we can calculate already:\n                    // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n                    return ((x2 - this.x[i1]) * (this.y[i3] - this.y[i1])) / (this.x[i3] - this.x[i1]) + this.y[i1];\n                };\n            },\n            //xxx: for now i will just save one spline function to to\n            getInterpolateFunction: function(c){\n                if(!s.controller.spline) s.controller.spline = s.params.loop ?\n                    new s.controller.LinearSpline(s.slidesGrid, c.slidesGrid) :\n                    new s.controller.LinearSpline(s.snapGrid, c.snapGrid);\n            },\n            setTranslate: function (translate, byController) {\n               var controlled = s.params.control;\n               var multiplier, controlledTranslate;\n               function setControlledTranslate(c) {\n                    // this will create an Interpolate function based on the snapGrids\n                    // x is the Grid of the scrolled scroller and y will be the controlled scroller\n                    // it makes sense to create this only once and recall it for the interpolation\n                    // the function does a lot of value caching for performance\n                    translate = c.rtl && c.params.direction === 'horizontal' ? -s.translate : s.translate;\n                    if (s.params.controlBy === 'slide') {\n                        s.controller.getInterpolateFunction(c);\n                        // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n                        // but it did not work out\n                        controlledTranslate = -s.controller.spline.interpolate(-translate);\n                    }\n\n                    if(!controlledTranslate || s.params.controlBy === 'container'){\n                        multiplier = (c.maxTranslate() - c.minTranslate()) / (s.maxTranslate() - s.minTranslate());\n                        controlledTranslate = (translate - s.minTranslate()) * multiplier + c.minTranslate();\n                    }\n\n                    if (s.params.controlInverse) {\n                        controlledTranslate = c.maxTranslate() - controlledTranslate;\n                    }\n                    c.updateProgress(controlledTranslate);\n                    c.setWrapperTranslate(controlledTranslate, false, s);\n                    c.updateActiveIndex();\n               }\n               if (Array.isArray(controlled)) {\n                   for (var i = 0; i < controlled.length; i++) {\n                       if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n                           setControlledTranslate(controlled[i]);\n                       }\n                   }\n               }\n               else if (controlled instanceof Swiper && byController !== controlled) {\n\n                   setControlledTranslate(controlled);\n               }\n            },\n            setTransition: function (duration, byController) {\n                var controlled = s.params.control;\n                var i;\n                function setControlledTransition(c) {\n                    c.setWrapperTransition(duration, s);\n                    if (duration !== 0) {\n                        c.onTransitionStart();\n                        c.wrapper.transitionEnd(function(){\n                            if (!controlled) return;\n                            if (c.params.loop && s.params.controlBy === 'slide') {\n                                c.fixLoop();\n                            }\n                            c.onTransitionEnd();\n\n                        });\n                    }\n                }\n                if (Array.isArray(controlled)) {\n                    for (i = 0; i < controlled.length; i++) {\n                        if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n                            setControlledTransition(controlled[i]);\n                        }\n                    }\n                }\n                else if (controlled instanceof Swiper && byController !== controlled) {\n                    setControlledTransition(controlled);\n                }\n            }\n        };\n\n\n        /*=========================\n          Hash Navigation\n          ===========================*/\n        s.hashnav = {\n            onHashCange: function (e, a) {\n                var newHash = document.location.hash.replace('#', '');\n                var activeSlideHash = s.slides.eq(s.activeIndex).attr('data-hash');\n                if (newHash !== activeSlideHash) {\n                    s.slideTo(s.wrapper.children('.' + s.params.slideClass + '[data-hash=\"' + (newHash) + '\"]').index());\n                }\n            },\n            attachEvents: function (detach) {\n                var action = detach ? 'off' : 'on';\n                $(window)[action]('hashchange', s.hashnav.onHashCange);\n            },\n            setHash: function () {\n                if (!s.hashnav.initialized || !s.params.hashnav) return;\n                if (s.params.replaceState && window.history && window.history.replaceState) {\n                    window.history.replaceState(null, null, ('#' + s.slides.eq(s.activeIndex).attr('data-hash') || ''));\n                } else {\n                    var slide = s.slides.eq(s.activeIndex);\n                    var hash = slide.attr('data-hash') || slide.attr('data-history');\n                    document.location.hash = hash || '';\n                }\n            },\n            init: function () {\n                if (!s.params.hashnav || s.params.history) return;\n                s.hashnav.initialized = true;\n                var hash = document.location.hash.replace('#', '');\n                if (hash) {\n                    var speed = 0;\n                    for (var i = 0, length = s.slides.length; i < length; i++) {\n                        var slide = s.slides.eq(i);\n                        var slideHash = slide.attr('data-hash') || slide.attr('data-history');\n                        if (slideHash === hash && !slide.hasClass(s.params.slideDuplicateClass)) {\n                            var index = slide.index();\n                            s.slideTo(index, speed, s.params.runCallbacksOnInit, true);\n                        }\n                    }\n                }\n                if (s.params.hashnavWatchState) s.hashnav.attachEvents();\n            },\n            destroy: function () {\n                if (s.params.hashnavWatchState) s.hashnav.attachEvents(true);\n            }\n        };\n\n\n        /*=========================\n          History Api with fallback to Hashnav\n          ===========================*/\n        s.history = {\n            init: function () {\n                if (!s.params.history) return;\n                if (!window.history || !window.history.pushState) {\n                    s.params.history = false;\n                    s.params.hashnav = true;\n                    return;\n                }\n                s.history.initialized = true;\n                this.paths = this.getPathValues();\n                if (!this.paths.key && !this.paths.value) return;\n                this.scrollToSlide(0, this.paths.value, s.params.runCallbacksOnInit);\n                if (!s.params.replaceState) {\n                    window.addEventListener('popstate', this.setHistoryPopState);\n                }\n            },\n            setHistoryPopState: function() {\n                s.history.paths = s.history.getPathValues();\n                s.history.scrollToSlide(s.params.speed, s.history.paths.value, false);\n            },\n            getPathValues: function() {\n                var pathArray = window.location.pathname.slice(1).split('/');\n                var total = pathArray.length;\n                var key = pathArray[total - 2];\n                var value = pathArray[total - 1];\n                return { key: key, value: value };\n            },\n            setHistory: function (key, index) {\n                if (!s.history.initialized || !s.params.history) return;\n                var slide = s.slides.eq(index);\n                var value = this.slugify(slide.attr('data-history'));\n                if (!window.location.pathname.includes(key)) {\n                    value = key + '/' + value;\n                }\n                if (s.params.replaceState) {\n                    window.history.replaceState(null, null, value);\n                } else {\n                    window.history.pushState(null, null, value);\n                }\n            },\n            slugify: function(text) {\n                return text.toString().toLowerCase()\n                    .replace(/\\s+/g, '-')\n                    .replace(/[^\\w\\-]+/g, '')\n                    .replace(/\\-\\-+/g, '-')\n                    .replace(/^-+/, '')\n                    .replace(/-+$/, '');\n            },\n            scrollToSlide: function(speed, value, runCallbacks) {\n                if (value) {\n                    for (var i = 0, length = s.slides.length; i < length; i++) {\n                        var slide = s.slides.eq(i);\n                        var slideHistory = this.slugify(slide.attr('data-history'));\n                        if (slideHistory === value && !slide.hasClass(s.params.slideDuplicateClass)) {\n                            var index = slide.index();\n                            s.slideTo(index, speed, runCallbacks);\n                        }\n                    }\n                } else {\n                    s.slideTo(0, speed, runCallbacks);\n                }\n            }\n        };\n\n\n        /*=========================\n          Keyboard Control\n          ===========================*/\n        function handleKeyboard(e) {\n            if (e.originalEvent) e = e.originalEvent; //jquery fix\n            var kc = e.keyCode || e.charCode;\n            // Directions locks\n            if (!s.params.allowSwipeToNext && (s.isHorizontal() && kc === 39 || !s.isHorizontal() && kc === 40)) {\n                return false;\n            }\n            if (!s.params.allowSwipeToPrev && (s.isHorizontal() && kc === 37 || !s.isHorizontal() && kc === 38)) {\n                return false;\n            }\n            if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n                return;\n            }\n            if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n                return;\n            }\n            if (kc === 37 || kc === 39 || kc === 38 || kc === 40) {\n                var inView = false;\n                //Check that swiper should be inside of visible area of window\n                if (s.container.parents('.' + s.params.slideClass).length > 0 && s.container.parents('.' + s.params.slideActiveClass).length === 0) {\n                    return;\n                }\n                var windowScroll = {\n                    left: window.pageXOffset,\n                    top: window.pageYOffset\n                };\n                var windowWidth = window.innerWidth;\n                var windowHeight = window.innerHeight;\n                var swiperOffset = s.container.offset();\n                if (s.rtl) swiperOffset.left = swiperOffset.left - s.container[0].scrollLeft;\n                var swiperCoord = [\n                    [swiperOffset.left, swiperOffset.top],\n                    [swiperOffset.left + s.width, swiperOffset.top],\n                    [swiperOffset.left, swiperOffset.top + s.height],\n                    [swiperOffset.left + s.width, swiperOffset.top + s.height]\n                ];\n                for (var i = 0; i < swiperCoord.length; i++) {\n                    var point = swiperCoord[i];\n                    if (\n                        point[0] >= windowScroll.left && point[0] <= windowScroll.left + windowWidth &&\n                        point[1] >= windowScroll.top && point[1] <= windowScroll.top + windowHeight\n                    ) {\n                        inView = true;\n                    }\n\n                }\n                if (!inView) return;\n            }\n            if (s.isHorizontal()) {\n                if (kc === 37 || kc === 39) {\n                    if (e.preventDefault) e.preventDefault();\n                    else e.returnValue = false;\n                }\n                if ((kc === 39 && !s.rtl) || (kc === 37 && s.rtl)) s.slideNext();\n                if ((kc === 37 && !s.rtl) || (kc === 39 && s.rtl)) s.slidePrev();\n            }\n            else {\n                if (kc === 38 || kc === 40) {\n                    if (e.preventDefault) e.preventDefault();\n                    else e.returnValue = false;\n                }\n                if (kc === 40) s.slideNext();\n                if (kc === 38) s.slidePrev();\n            }\n            s.emit('onKeyPress', s, kc);\n        }\n        s.disableKeyboardControl = function () {\n            s.params.keyboardControl = false;\n            $(document).off('keydown', handleKeyboard);\n        };\n        s.enableKeyboardControl = function () {\n            s.params.keyboardControl = true;\n            $(document).on('keydown', handleKeyboard);\n        };\n\n\n        /*=========================\n          Mousewheel Control\n          ===========================*/\n        s.mousewheel = {\n            event: false,\n            lastScrollTime: (new window.Date()).getTime()\n        };\n        function isEventSupported() {\n            var eventName = 'onwheel';\n            var isSupported = eventName in document;\n\n            if (!isSupported) {\n                var element = document.createElement('div');\n                element.setAttribute(eventName, 'return;');\n                isSupported = typeof element[eventName] === 'function';\n            }\n\n            if (!isSupported &&\n                document.implementation &&\n                document.implementation.hasFeature &&\n                    // always returns true in newer browsers as per the standard.\n                    // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n                document.implementation.hasFeature('', '') !== true ) {\n                // This is the only way to test support for the `wheel` event in IE9+.\n                isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n            }\n\n            return isSupported;\n        }\n        /**\n         * Mouse wheel (and 2-finger trackpad) support on the web sucks.  It is\n         * complicated, thus this doc is long and (hopefully) detailed enough to answer\n         * your questions.\n         *\n         * If you need to react to the mouse wheel in a predictable way, this code is\n         * like your bestest friend. * hugs *\n         *\n         * As of today, there are 4 DOM event types you can listen to:\n         *\n         *   'wheel'                -- Chrome(31+), FF(17+), IE(9+)\n         *   'mousewheel'           -- Chrome, IE(6+), Opera, Safari\n         *   'MozMousePixelScroll'  -- FF(3.5 only!) (2010-2013) -- don't bother!\n         *   'DOMMouseScroll'       -- FF(0.9.7+) since 2003\n         *\n         * So what to do?  The is the best:\n         *\n         *   normalizeWheel.getEventType();\n         *\n         * In your event callback, use this code to get sane interpretation of the\n         * deltas.  This code will return an object with properties:\n         *\n         *   spinX   -- normalized spin speed (use for zoom) - x plane\n         *   spinY   -- \" - y plane\n         *   pixelX  -- normalized distance (to pixels) - x plane\n         *   pixelY  -- \" - y plane\n         *\n         * Wheel values are provided by the browser assuming you are using the wheel to\n         * scroll a web page by a number of lines or pixels (or pages).  Values can vary\n         * significantly on different platforms and browsers, forgetting that you can\n         * scroll at different speeds.  Some devices (like trackpads) emit more events\n         * at smaller increments with fine granularity, and some emit massive jumps with\n         * linear speed or acceleration.\n         *\n         * This code does its best to normalize the deltas for you:\n         *\n         *   - spin is trying to normalize how far the wheel was spun (or trackpad\n         *     dragged).  This is super useful for zoom support where you want to\n         *     throw away the chunky scroll steps on the PC and make those equal to\n         *     the slow and smooth tiny steps on the Mac. Key data: This code tries to\n         *     resolve a single slow step on a wheel to 1.\n         *\n         *   - pixel is normalizing the desired scroll delta in pixel units.  You'll\n         *     get the crazy differences between browsers, but at least it'll be in\n         *     pixels!\n         *\n         *   - positive value indicates scrolling DOWN/RIGHT, negative UP/LEFT.  This\n         *     should translate to positive value zooming IN, negative zooming OUT.\n         *     This matches the newer 'wheel' event.\n         *\n         * Why are there spinX, spinY (or pixels)?\n         *\n         *   - spinX is a 2-finger side drag on the trackpad, and a shift + wheel turn\n         *     with a mouse.  It results in side-scrolling in the browser by default.\n         *\n         *   - spinY is what you expect -- it's the classic axis of a mouse wheel.\n         *\n         *   - I dropped spinZ/pixelZ.  It is supported by the DOM 3 'wheel' event and\n         *     probably is by browsers in conjunction with fancy 3D controllers .. but\n         *     you know.\n         *\n         * Implementation info:\n         *\n         * Examples of 'wheel' event if you scroll slowly (down) by one step with an\n         * average mouse:\n         *\n         *   OS X + Chrome  (mouse)     -    4   pixel delta  (wheelDelta -120)\n         *   OS X + Safari  (mouse)     -  N/A   pixel delta  (wheelDelta  -12)\n         *   OS X + Firefox (mouse)     -    0.1 line  delta  (wheelDelta  N/A)\n         *   Win8 + Chrome  (mouse)     -  100   pixel delta  (wheelDelta -120)\n         *   Win8 + Firefox (mouse)     -    3   line  delta  (wheelDelta -120)\n         *\n         * On the trackpad:\n         *\n         *   OS X + Chrome  (trackpad)  -    2   pixel delta  (wheelDelta   -6)\n         *   OS X + Firefox (trackpad)  -    1   pixel delta  (wheelDelta  N/A)\n         *\n         * On other/older browsers.. it's more complicated as there can be multiple and\n         * also missing delta values.\n         *\n         * The 'wheel' event is more standard:\n         *\n         * http://www.w3.org/TR/DOM-Level-3-Events/#events-wheelevents\n         *\n         * The basics is that it includes a unit, deltaMode (pixels, lines, pages), and\n         * deltaX, deltaY and deltaZ.  Some browsers provide other values to maintain\n         * backward compatibility with older events.  Those other values help us\n         * better normalize spin speed.  Example of what the browsers provide:\n         *\n         *                          | event.wheelDelta | event.detail\n         *        ------------------+------------------+--------------\n         *          Safari v5/OS X  |       -120       |       0\n         *          Safari v5/Win7  |       -120       |       0\n         *         Chrome v17/OS X  |       -120       |       0\n         *         Chrome v17/Win7  |       -120       |       0\n         *                IE9/Win7  |       -120       |   undefined\n         *         Firefox v4/OS X  |     undefined    |       1\n         *         Firefox v4/Win7  |     undefined    |       3\n         *\n         */\n        function normalizeWheel( /*object*/ event ) /*object*/ {\n            // Reasonable defaults\n            var PIXEL_STEP = 10;\n            var LINE_HEIGHT = 40;\n            var PAGE_HEIGHT = 800;\n\n            var sX = 0, sY = 0,       // spinX, spinY\n                pX = 0, pY = 0;       // pixelX, pixelY\n\n            // Legacy\n            if( 'detail' in event ) {\n                sY = event.detail;\n            }\n            if( 'wheelDelta' in event ) {\n                sY = -event.wheelDelta / 120;\n            }\n            if( 'wheelDeltaY' in event ) {\n                sY = -event.wheelDeltaY / 120;\n            }\n            if( 'wheelDeltaX' in event ) {\n                sX = -event.wheelDeltaX / 120;\n            }\n\n            // side scrolling on FF with DOMMouseScroll\n            if( 'axis' in event && event.axis === event.HORIZONTAL_AXIS ) {\n                sX = sY;\n                sY = 0;\n            }\n\n            pX = sX * PIXEL_STEP;\n            pY = sY * PIXEL_STEP;\n\n            if( 'deltaY' in event ) {\n                pY = event.deltaY;\n            }\n            if( 'deltaX' in event ) {\n                pX = event.deltaX;\n            }\n\n            if( (pX || pY) && event.deltaMode ) {\n                if( event.deltaMode === 1 ) {          // delta in LINE units\n                    pX *= LINE_HEIGHT;\n                    pY *= LINE_HEIGHT;\n                } else {                             // delta in PAGE units\n                    pX *= PAGE_HEIGHT;\n                    pY *= PAGE_HEIGHT;\n                }\n            }\n\n            // Fall-back if spin cannot be determined\n            if( pX && !sX ) {\n                sX = (pX < 1) ? -1 : 1;\n            }\n            if( pY && !sY ) {\n                sY = (pY < 1) ? -1 : 1;\n            }\n\n            return {\n                spinX: sX,\n                spinY: sY,\n                pixelX: pX,\n                pixelY: pY\n            };\n        }\n        if (s.params.mousewheelControl) {\n            /**\n             * The best combination if you prefer spinX + spinY normalization.  It favors\n             * the older DOMMouseScroll for Firefox, as FF does not include wheelDelta with\n             * 'wheel' event, making spin speed determination impossible.\n             */\n            s.mousewheel.event = (navigator.userAgent.indexOf('firefox') > -1) ?\n                'DOMMouseScroll' :\n                isEventSupported() ?\n                    'wheel' : 'mousewheel';\n        }\n        function handleMousewheel(e) {\n            if (e.originalEvent) e = e.originalEvent; //jquery fix\n            var delta = 0;\n            var rtlFactor = s.rtl ? -1 : 1;\n\n            var data = normalizeWheel( e );\n\n            if (s.params.mousewheelForceToAxis) {\n                if (s.isHorizontal()) {\n                    if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = data.pixelX * rtlFactor;\n                    else return;\n                }\n                else {\n                    if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = data.pixelY;\n                    else return;\n                }\n            }\n            else {\n                delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? - data.pixelX * rtlFactor : - data.pixelY;\n            }\n\n            if (delta === 0) return;\n\n            if (s.params.mousewheelInvert) delta = -delta;\n\n            if (!s.params.freeMode) {\n                if ((new window.Date()).getTime() - s.mousewheel.lastScrollTime > 60) {\n                    if (delta < 0) {\n                        if ((!s.isEnd || s.params.loop) && !s.animating) {\n                            s.slideNext();\n                            s.emit('onScroll', s, e);\n                        }\n                        else if (s.params.mousewheelReleaseOnEdges) return true;\n                    }\n                    else {\n                        if ((!s.isBeginning || s.params.loop) && !s.animating) {\n                            s.slidePrev();\n                            s.emit('onScroll', s, e);\n                        }\n                        else if (s.params.mousewheelReleaseOnEdges) return true;\n                    }\n                }\n                s.mousewheel.lastScrollTime = (new window.Date()).getTime();\n\n            }\n            else {\n                //Freemode or scrollContainer:\n                var position = s.getWrapperTranslate() + delta * s.params.mousewheelSensitivity;\n                var wasBeginning = s.isBeginning,\n                    wasEnd = s.isEnd;\n\n                if (position >= s.minTranslate()) position = s.minTranslate();\n                if (position <= s.maxTranslate()) position = s.maxTranslate();\n\n                s.setWrapperTransition(0);\n                s.setWrapperTranslate(position);\n                s.updateProgress();\n                s.updateActiveIndex();\n\n                if (!wasBeginning && s.isBeginning || !wasEnd && s.isEnd) {\n                    s.updateClasses();\n                }\n\n                if (s.params.freeModeSticky) {\n                    clearTimeout(s.mousewheel.timeout);\n                    s.mousewheel.timeout = setTimeout(function () {\n                        s.slideReset();\n                    }, 300);\n                }\n                else {\n                    if (s.params.lazyLoading && s.lazy) {\n                        s.lazy.load();\n                    }\n                }\n                // Emit event\n                s.emit('onScroll', s, e);\n\n                // Stop autoplay\n                if (s.params.autoplay && s.params.autoplayDisableOnInteraction) s.stopAutoplay();\n\n                // Return page scroll on edge positions\n                if (position === 0 || position === s.maxTranslate()) return;\n            }\n\n            if (e.preventDefault) e.preventDefault();\n            else e.returnValue = false;\n            return false;\n        }\n        s.disableMousewheelControl = function () {\n            if (!s.mousewheel.event) return false;\n            var target = s.container;\n            if (s.params.mousewheelEventsTarged !== 'container') {\n                target = $(s.params.mousewheelEventsTarged);\n            }\n            target.off(s.mousewheel.event, handleMousewheel);\n            s.params.mousewheelControl = false;\n            return true;\n        };\n\n        s.enableMousewheelControl = function () {\n            if (!s.mousewheel.event) return false;\n            var target = s.container;\n            if (s.params.mousewheelEventsTarged !== 'container') {\n                target = $(s.params.mousewheelEventsTarged);\n            }\n            target.on(s.mousewheel.event, handleMousewheel);\n            s.params.mousewheelControl = true;\n            return true;\n        };\n\n\n        /*=========================\n          Parallax\n          ===========================*/\n        function setParallaxTransform(el, progress) {\n            el = $(el);\n            var p, pX, pY;\n            var rtlFactor = s.rtl ? -1 : 1;\n\n            p = el.attr('data-swiper-parallax') || '0';\n            pX = el.attr('data-swiper-parallax-x');\n            pY = el.attr('data-swiper-parallax-y');\n            if (pX || pY) {\n                pX = pX || '0';\n                pY = pY || '0';\n            }\n            else {\n                if (s.isHorizontal()) {\n                    pX = p;\n                    pY = '0';\n                }\n                else {\n                    pY = p;\n                    pX = '0';\n                }\n            }\n\n            if ((pX).indexOf('%') >= 0) {\n                pX = parseInt(pX, 10) * progress * rtlFactor + '%';\n            }\n            else {\n                pX = pX * progress * rtlFactor + 'px' ;\n            }\n            if ((pY).indexOf('%') >= 0) {\n                pY = parseInt(pY, 10) * progress + '%';\n            }\n            else {\n                pY = pY * progress + 'px' ;\n            }\n\n            el.transform('translate3d(' + pX + ', ' + pY + ',0px)');\n        }\n        s.parallax = {\n            setTranslate: function () {\n                s.container.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]').each(function(){\n                    setParallaxTransform(this, s.progress);\n\n                });\n                s.slides.each(function () {\n                    var slide = $(this);\n                    slide.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]').each(function () {\n                        var progress = Math.min(Math.max(slide[0].progress, -1), 1);\n                        setParallaxTransform(this, progress);\n                    });\n                });\n            },\n            setTransition: function (duration) {\n                if (typeof duration === 'undefined') duration = s.params.speed;\n                s.container.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]').each(function(){\n                    var el = $(this);\n                    var parallaxDuration = parseInt(el.attr('data-swiper-parallax-duration'), 10) || duration;\n                    if (duration === 0) parallaxDuration = 0;\n                    el.transition(parallaxDuration);\n                });\n            }\n        };\n\n\n        /*=========================\n          Zoom\n          ===========================*/\n        s.zoom = {\n            // \"Global\" Props\n            scale: 1,\n            currentScale: 1,\n            isScaling: false,\n            gesture: {\n                slide: undefined,\n                slideWidth: undefined,\n                slideHeight: undefined,\n                image: undefined,\n                imageWrap: undefined,\n                zoomMax: s.params.zoomMax\n            },\n            image: {\n                isTouched: undefined,\n                isMoved: undefined,\n                currentX: undefined,\n                currentY: undefined,\n                minX: undefined,\n                minY: undefined,\n                maxX: undefined,\n                maxY: undefined,\n                width: undefined,\n                height: undefined,\n                startX: undefined,\n                startY: undefined,\n                touchesStart: {},\n                touchesCurrent: {}\n            },\n            velocity: {\n                x: undefined,\n                y: undefined,\n                prevPositionX: undefined,\n                prevPositionY: undefined,\n                prevTime: undefined\n            },\n            // Calc Scale From Multi-touches\n            getDistanceBetweenTouches: function (e) {\n                if (e.targetTouches.length < 2) return 1;\n                var x1 = e.targetTouches[0].pageX,\n                    y1 = e.targetTouches[0].pageY,\n                    x2 = e.targetTouches[1].pageX,\n                    y2 = e.targetTouches[1].pageY;\n                var distance = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));\n                return distance;\n            },\n            // Events\n            onGestureStart: function (e) {\n                var z = s.zoom;\n                if (!s.support.gestures) {\n                    if (e.type !== 'touchstart' || e.type === 'touchstart' && e.targetTouches.length < 2) {\n                        return;\n                    }\n                    z.gesture.scaleStart = z.getDistanceBetweenTouches(e);\n                }\n                if (!z.gesture.slide || !z.gesture.slide.length) {\n                    z.gesture.slide = $(this);\n                    if (z.gesture.slide.length === 0) z.gesture.slide = s.slides.eq(s.activeIndex);\n                    z.gesture.image = z.gesture.slide.find('img, svg, canvas');\n                    z.gesture.imageWrap = z.gesture.image.parent('.' + s.params.zoomContainerClass);\n                    z.gesture.zoomMax = z.gesture.imageWrap.attr('data-swiper-zoom') || s.params.zoomMax ;\n                    if (z.gesture.imageWrap.length === 0) {\n                        z.gesture.image = undefined;\n                        return;\n                    }\n                }\n                z.gesture.image.transition(0);\n                z.isScaling = true;\n            },\n            onGestureChange: function (e) {\n                var z = s.zoom;\n                if (!s.support.gestures) {\n                    if (e.type !== 'touchmove' || e.type === 'touchmove' && e.targetTouches.length < 2) {\n                        return;\n                    }\n                    z.gesture.scaleMove = z.getDistanceBetweenTouches(e);\n                }\n                if (!z.gesture.image || z.gesture.image.length === 0) return;\n                if (s.support.gestures) {\n                    z.scale = e.scale * z.currentScale;\n                }\n                else {\n                    z.scale = (z.gesture.scaleMove / z.gesture.scaleStart) * z.currentScale;\n                }\n                if (z.scale > z.gesture.zoomMax) {\n                    z.scale = z.gesture.zoomMax - 1 + Math.pow((z.scale - z.gesture.zoomMax + 1), 0.5);\n                }\n                if (z.scale < s.params.zoomMin) {\n                    z.scale =  s.params.zoomMin + 1 - Math.pow((s.params.zoomMin - z.scale + 1), 0.5);\n                }\n                z.gesture.image.transform('translate3d(0,0,0) scale(' + z.scale + ')');\n            },\n            onGestureEnd: function (e) {\n                var z = s.zoom;\n                if (!s.support.gestures) {\n                    if (e.type !== 'touchend' || e.type === 'touchend' && e.changedTouches.length < 2) {\n                        return;\n                    }\n                }\n                if (!z.gesture.image || z.gesture.image.length === 0) return;\n                z.scale = Math.max(Math.min(z.scale, z.gesture.zoomMax), s.params.zoomMin);\n                z.gesture.image.transition(s.params.speed).transform('translate3d(0,0,0) scale(' + z.scale + ')');\n                z.currentScale = z.scale;\n                z.isScaling = false;\n                if (z.scale === 1) z.gesture.slide = undefined;\n            },\n            onTouchStart: function (s, e) {\n                var z = s.zoom;\n                if (!z.gesture.image || z.gesture.image.length === 0) return;\n                if (z.image.isTouched) return;\n                if (s.device.os === 'android') e.preventDefault();\n                z.image.isTouched = true;\n                z.image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n                z.image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n            },\n            onTouchMove: function (e) {\n                var z = s.zoom;\n                if (!z.gesture.image || z.gesture.image.length === 0) return;\n                s.allowClick = false;\n                if (!z.image.isTouched || !z.gesture.slide) return;\n\n                if (!z.image.isMoved) {\n                    z.image.width = z.gesture.image[0].offsetWidth;\n                    z.image.height = z.gesture.image[0].offsetHeight;\n                    z.image.startX = s.getTranslate(z.gesture.imageWrap[0], 'x') || 0;\n                    z.image.startY = s.getTranslate(z.gesture.imageWrap[0], 'y') || 0;\n                    z.gesture.slideWidth = z.gesture.slide[0].offsetWidth;\n                    z.gesture.slideHeight = z.gesture.slide[0].offsetHeight;\n                    z.gesture.imageWrap.transition(0);\n                    if (s.rtl) z.image.startX = -z.image.startX;\n                    if (s.rtl) z.image.startY = -z.image.startY;\n                }\n                // Define if we need image drag\n                var scaledWidth = z.image.width * z.scale;\n                var scaledHeight = z.image.height * z.scale;\n\n                if (scaledWidth < z.gesture.slideWidth && scaledHeight < z.gesture.slideHeight) return;\n\n                z.image.minX = Math.min((z.gesture.slideWidth / 2 - scaledWidth / 2), 0);\n                z.image.maxX = -z.image.minX;\n                z.image.minY = Math.min((z.gesture.slideHeight / 2 - scaledHeight / 2), 0);\n                z.image.maxY = -z.image.minY;\n\n                z.image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n                z.image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n                if (!z.image.isMoved && !z.isScaling) {\n                    if (s.isHorizontal() &&\n                        (Math.floor(z.image.minX) === Math.floor(z.image.startX) && z.image.touchesCurrent.x < z.image.touchesStart.x) ||\n                        (Math.floor(z.image.maxX) === Math.floor(z.image.startX) && z.image.touchesCurrent.x > z.image.touchesStart.x)\n                        ) {\n                        z.image.isTouched = false;\n                        return;\n                    }\n                    else if (!s.isHorizontal() &&\n                        (Math.floor(z.image.minY) === Math.floor(z.image.startY) && z.image.touchesCurrent.y < z.image.touchesStart.y) ||\n                        (Math.floor(z.image.maxY) === Math.floor(z.image.startY) && z.image.touchesCurrent.y > z.image.touchesStart.y)\n                        ) {\n                        z.image.isTouched = false;\n                        return;\n                    }\n                }\n                e.preventDefault();\n                e.stopPropagation();\n\n                z.image.isMoved = true;\n                z.image.currentX = z.image.touchesCurrent.x - z.image.touchesStart.x + z.image.startX;\n                z.image.currentY = z.image.touchesCurrent.y - z.image.touchesStart.y + z.image.startY;\n\n                if (z.image.currentX < z.image.minX) {\n                    z.image.currentX =  z.image.minX + 1 - Math.pow((z.image.minX - z.image.currentX + 1), 0.8);\n                }\n                if (z.image.currentX > z.image.maxX) {\n                    z.image.currentX = z.image.maxX - 1 + Math.pow((z.image.currentX - z.image.maxX + 1), 0.8);\n                }\n\n                if (z.image.currentY < z.image.minY) {\n                    z.image.currentY =  z.image.minY + 1 - Math.pow((z.image.minY - z.image.currentY + 1), 0.8);\n                }\n                if (z.image.currentY > z.image.maxY) {\n                    z.image.currentY = z.image.maxY - 1 + Math.pow((z.image.currentY - z.image.maxY + 1), 0.8);\n                }\n\n                //Velocity\n                if (!z.velocity.prevPositionX) z.velocity.prevPositionX = z.image.touchesCurrent.x;\n                if (!z.velocity.prevPositionY) z.velocity.prevPositionY = z.image.touchesCurrent.y;\n                if (!z.velocity.prevTime) z.velocity.prevTime = Date.now();\n                z.velocity.x = (z.image.touchesCurrent.x - z.velocity.prevPositionX) / (Date.now() - z.velocity.prevTime) / 2;\n                z.velocity.y = (z.image.touchesCurrent.y - z.velocity.prevPositionY) / (Date.now() - z.velocity.prevTime) / 2;\n                if (Math.abs(z.image.touchesCurrent.x - z.velocity.prevPositionX) < 2) z.velocity.x = 0;\n                if (Math.abs(z.image.touchesCurrent.y - z.velocity.prevPositionY) < 2) z.velocity.y = 0;\n                z.velocity.prevPositionX = z.image.touchesCurrent.x;\n                z.velocity.prevPositionY = z.image.touchesCurrent.y;\n                z.velocity.prevTime = Date.now();\n\n                z.gesture.imageWrap.transform('translate3d(' + z.image.currentX + 'px, ' + z.image.currentY + 'px,0)');\n            },\n            onTouchEnd: function (s, e) {\n                var z = s.zoom;\n                if (!z.gesture.image || z.gesture.image.length === 0) return;\n                if (!z.image.isTouched || !z.image.isMoved) {\n                    z.image.isTouched = false;\n                    z.image.isMoved = false;\n                    return;\n                }\n                z.image.isTouched = false;\n                z.image.isMoved = false;\n                var momentumDurationX = 300;\n                var momentumDurationY = 300;\n                var momentumDistanceX = z.velocity.x * momentumDurationX;\n                var newPositionX = z.image.currentX + momentumDistanceX;\n                var momentumDistanceY = z.velocity.y * momentumDurationY;\n                var newPositionY = z.image.currentY + momentumDistanceY;\n\n                //Fix duration\n                if (z.velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - z.image.currentX) / z.velocity.x);\n                if (z.velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - z.image.currentY) / z.velocity.y);\n                var momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n\n                z.image.currentX = newPositionX;\n                z.image.currentY = newPositionY;\n\n                // Define if we need image drag\n                var scaledWidth = z.image.width * z.scale;\n                var scaledHeight = z.image.height * z.scale;\n                z.image.minX = Math.min((z.gesture.slideWidth / 2 - scaledWidth / 2), 0);\n                z.image.maxX = -z.image.minX;\n                z.image.minY = Math.min((z.gesture.slideHeight / 2 - scaledHeight / 2), 0);\n                z.image.maxY = -z.image.minY;\n                z.image.currentX = Math.max(Math.min(z.image.currentX, z.image.maxX), z.image.minX);\n                z.image.currentY = Math.max(Math.min(z.image.currentY, z.image.maxY), z.image.minY);\n\n                z.gesture.imageWrap.transition(momentumDuration).transform('translate3d(' + z.image.currentX + 'px, ' + z.image.currentY + 'px,0)');\n            },\n            onTransitionEnd: function (s) {\n                var z = s.zoom;\n                if (z.gesture.slide && s.previousIndex !== s.activeIndex) {\n                    z.gesture.image.transform('translate3d(0,0,0) scale(1)');\n                    z.gesture.imageWrap.transform('translate3d(0,0,0)');\n                    z.gesture.slide = z.gesture.image = z.gesture.imageWrap = undefined;\n                    z.scale = z.currentScale = 1;\n                }\n            },\n            // Toggle Zoom\n            toggleZoom: function (s, e) {\n                var z = s.zoom;\n                if (!z.gesture.slide) {\n                    z.gesture.slide = s.clickedSlide ? $(s.clickedSlide) : s.slides.eq(s.activeIndex);\n                    z.gesture.image = z.gesture.slide.find('img, svg, canvas');\n                    z.gesture.imageWrap = z.gesture.image.parent('.' + s.params.zoomContainerClass);\n                }\n                if (!z.gesture.image || z.gesture.image.length === 0) return;\n\n                var touchX, touchY, offsetX, offsetY, diffX, diffY, translateX, translateY, imageWidth, imageHeight, scaledWidth, scaledHeight, translateMinX, translateMinY, translateMaxX, translateMaxY, slideWidth, slideHeight;\n\n                if (typeof z.image.touchesStart.x === 'undefined' && e) {\n                    touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n                    touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n                }\n                else {\n                    touchX = z.image.touchesStart.x;\n                    touchY = z.image.touchesStart.y;\n                }\n\n                if (z.scale && z.scale !== 1) {\n                    // Zoom Out\n                    z.scale = z.currentScale = 1;\n                    z.gesture.imageWrap.transition(300).transform('translate3d(0,0,0)');\n                    z.gesture.image.transition(300).transform('translate3d(0,0,0) scale(1)');\n                    z.gesture.slide = undefined;\n                }\n                else {\n                    // Zoom In\n                    z.scale = z.currentScale = z.gesture.imageWrap.attr('data-swiper-zoom') || s.params.zoomMax;\n                    if (e) {\n                        slideWidth = z.gesture.slide[0].offsetWidth;\n                        slideHeight = z.gesture.slide[0].offsetHeight;\n                        offsetX = z.gesture.slide.offset().left;\n                        offsetY = z.gesture.slide.offset().top;\n                        diffX = offsetX + slideWidth/2 - touchX;\n                        diffY = offsetY + slideHeight/2 - touchY;\n\n                        imageWidth = z.gesture.image[0].offsetWidth;\n                        imageHeight = z.gesture.image[0].offsetHeight;\n                        scaledWidth = imageWidth * z.scale;\n                        scaledHeight = imageHeight * z.scale;\n\n                        translateMinX = Math.min((slideWidth / 2 - scaledWidth / 2), 0);\n                        translateMinY = Math.min((slideHeight / 2 - scaledHeight / 2), 0);\n                        translateMaxX = -translateMinX;\n                        translateMaxY = -translateMinY;\n\n                        translateX = diffX * z.scale;\n                        translateY = diffY * z.scale;\n\n                        if (translateX < translateMinX) {\n                            translateX =  translateMinX;\n                        }\n                        if (translateX > translateMaxX) {\n                            translateX = translateMaxX;\n                        }\n\n                        if (translateY < translateMinY) {\n                            translateY =  translateMinY;\n                        }\n                        if (translateY > translateMaxY) {\n                            translateY = translateMaxY;\n                        }\n                    }\n                    else {\n                        translateX = 0;\n                        translateY = 0;\n                    }\n                    z.gesture.imageWrap.transition(300).transform('translate3d(' + translateX + 'px, ' + translateY + 'px,0)');\n                    z.gesture.image.transition(300).transform('translate3d(0,0,0) scale(' + z.scale + ')');\n                }\n            },\n            // Attach/Detach Events\n            attachEvents: function (detach) {\n                var action = detach ? 'off' : 'on';\n\n                if (s.params.zoom) {\n                    var target = s.slides;\n                    var passiveListener = s.touchEvents.start === 'touchstart' && s.support.passiveListener && s.params.passiveListeners ? {passive: true, capture: false} : false;\n                    // Scale image\n                    if (s.support.gestures) {\n                        s.slides[action]('gesturestart', s.zoom.onGestureStart, passiveListener);\n                        s.slides[action]('gesturechange', s.zoom.onGestureChange, passiveListener);\n                        s.slides[action]('gestureend', s.zoom.onGestureEnd, passiveListener);\n                    }\n                    else if (s.touchEvents.start === 'touchstart') {\n                        s.slides[action](s.touchEvents.start, s.zoom.onGestureStart, passiveListener);\n                        s.slides[action](s.touchEvents.move, s.zoom.onGestureChange, passiveListener);\n                        s.slides[action](s.touchEvents.end, s.zoom.onGestureEnd, passiveListener);\n                    }\n\n                    // Move image\n                    s[action]('touchStart', s.zoom.onTouchStart);\n                    s.slides.each(function (index, slide){\n                        if ($(slide).find('.' + s.params.zoomContainerClass).length > 0) {\n                            $(slide)[action](s.touchEvents.move, s.zoom.onTouchMove);\n                        }\n                    });\n                    s[action]('touchEnd', s.zoom.onTouchEnd);\n\n                    // Scale Out\n                    s[action]('transitionEnd', s.zoom.onTransitionEnd);\n                    if (s.params.zoomToggle) {\n                        s.on('doubleTap', s.zoom.toggleZoom);\n                    }\n                }\n            },\n            init: function () {\n                s.zoom.attachEvents();\n            },\n            destroy: function () {\n                s.zoom.attachEvents(true);\n            }\n        };\n\n\n        /*=========================\n          Plugins API. Collect all and init all plugins\n          ===========================*/\n        s._plugins = [];\n        for (var plugin in s.plugins) {\n            var p = s.plugins[plugin](s, s.params[plugin]);\n            if (p) s._plugins.push(p);\n        }\n        // Method to call all plugins event/method\n        s.callPlugins = function (eventName) {\n            for (var i = 0; i < s._plugins.length; i++) {\n                if (eventName in s._plugins[i]) {\n                    s._plugins[i][eventName](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]);\n                }\n            }\n        };\n\n\n        /*=========================\n          Events/Callbacks/Plugins Emitter\n          ===========================*/\n        function normalizeEventName (eventName) {\n            if (eventName.indexOf('on') !== 0) {\n                if (eventName[0] !== eventName[0].toUpperCase()) {\n                    eventName = 'on' + eventName[0].toUpperCase() + eventName.substring(1);\n                }\n                else {\n                    eventName = 'on' + eventName;\n                }\n            }\n            return eventName;\n        }\n        s.emitterEventListeners = {\n\n        };\n        s.emit = function (eventName) {\n            // Trigger callbacks\n            if (s.params[eventName]) {\n                s.params[eventName](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]);\n            }\n            var i;\n            // Trigger events\n            if (s.emitterEventListeners[eventName]) {\n                for (i = 0; i < s.emitterEventListeners[eventName].length; i++) {\n                    s.emitterEventListeners[eventName][i](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]);\n                }\n            }\n            // Trigger plugins\n            if (s.callPlugins) s.callPlugins(eventName, arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]);\n        };\n        s.on = function (eventName, handler) {\n            eventName = normalizeEventName(eventName);\n            if (!s.emitterEventListeners[eventName]) s.emitterEventListeners[eventName] = [];\n            s.emitterEventListeners[eventName].push(handler);\n            return s;\n        };\n        s.off = function (eventName, handler) {\n            var i;\n            eventName = normalizeEventName(eventName);\n            if (typeof handler === 'undefined') {\n                // Remove all handlers for such event\n                s.emitterEventListeners[eventName] = [];\n                return s;\n            }\n            if (!s.emitterEventListeners[eventName] || s.emitterEventListeners[eventName].length === 0) return;\n            for (i = 0; i < s.emitterEventListeners[eventName].length; i++) {\n                if(s.emitterEventListeners[eventName][i] === handler) s.emitterEventListeners[eventName].splice(i, 1);\n            }\n            return s;\n        };\n        s.once = function (eventName, handler) {\n            eventName = normalizeEventName(eventName);\n            var _handler = function () {\n                handler(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]);\n                s.off(eventName, _handler);\n            };\n            s.on(eventName, _handler);\n            return s;\n        };\n\n\n        // Accessibility tools\n        s.a11y = {\n            makeFocusable: function ($el) {\n                $el.attr('tabIndex', '0');\n                return $el;\n            },\n            addRole: function ($el, role) {\n                $el.attr('role', role);\n                return $el;\n            },\n\n            addLabel: function ($el, label) {\n                $el.attr('aria-label', label);\n                return $el;\n            },\n\n            disable: function ($el) {\n                $el.attr('aria-disabled', true);\n                return $el;\n            },\n\n            enable: function ($el) {\n                $el.attr('aria-disabled', false);\n                return $el;\n            },\n\n            onEnterKey: function (event) {\n                if (event.keyCode !== 13) return;\n                if ($(event.target).is(s.params.nextButton)) {\n                    s.onClickNext(event);\n                    if (s.isEnd) {\n                        s.a11y.notify(s.params.lastSlideMessage);\n                    }\n                    else {\n                        s.a11y.notify(s.params.nextSlideMessage);\n                    }\n                }\n                else if ($(event.target).is(s.params.prevButton)) {\n                    s.onClickPrev(event);\n                    if (s.isBeginning) {\n                        s.a11y.notify(s.params.firstSlideMessage);\n                    }\n                    else {\n                        s.a11y.notify(s.params.prevSlideMessage);\n                    }\n                }\n                if ($(event.target).is('.' + s.params.bulletClass)) {\n                    $(event.target)[0].click();\n                }\n            },\n\n            liveRegion: $('<span class=\"' + s.params.notificationClass + '\" aria-live=\"assertive\" aria-atomic=\"true\"></span>'),\n\n            notify: function (message) {\n                var notification = s.a11y.liveRegion;\n                if (notification.length === 0) return;\n                notification.html('');\n                notification.html(message);\n            },\n            init: function () {\n                // Setup accessibility\n                if (s.params.nextButton && s.nextButton && s.nextButton.length > 0) {\n                    s.a11y.makeFocusable(s.nextButton);\n                    s.a11y.addRole(s.nextButton, 'button');\n                    s.a11y.addLabel(s.nextButton, s.params.nextSlideMessage);\n                }\n                if (s.params.prevButton && s.prevButton && s.prevButton.length > 0) {\n                    s.a11y.makeFocusable(s.prevButton);\n                    s.a11y.addRole(s.prevButton, 'button');\n                    s.a11y.addLabel(s.prevButton, s.params.prevSlideMessage);\n                }\n\n                $(s.container).append(s.a11y.liveRegion);\n            },\n            initPagination: function () {\n                if (s.params.pagination && s.params.paginationClickable && s.bullets && s.bullets.length) {\n                    s.bullets.each(function () {\n                        var bullet = $(this);\n                        s.a11y.makeFocusable(bullet);\n                        s.a11y.addRole(bullet, 'button');\n                        s.a11y.addLabel(bullet, s.params.paginationBulletMessage.replace(/{{index}}/, bullet.index() + 1));\n                    });\n                }\n            },\n            destroy: function () {\n                if (s.a11y.liveRegion && s.a11y.liveRegion.length > 0) s.a11y.liveRegion.remove();\n            }\n        };\n\n\n        /*=========================\n          Init/Destroy\n          ===========================*/\n        s.init = function () {\n            if (s.params.loop) s.createLoop();\n            s.updateContainerSize();\n            s.updateSlidesSize();\n            s.updatePagination();\n            if (s.params.scrollbar && s.scrollbar) {\n                s.scrollbar.set();\n                if (s.params.scrollbarDraggable) {\n                    s.scrollbar.enableDraggable();\n                }\n            }\n            if (s.params.effect !== 'slide' && s.effects[s.params.effect]) {\n                if (!s.params.loop) s.updateProgress();\n                s.effects[s.params.effect].setTranslate();\n            }\n            if (s.params.loop) {\n                s.slideTo(s.params.initialSlide + s.loopedSlides, 0, s.params.runCallbacksOnInit);\n            }\n            else {\n                s.slideTo(s.params.initialSlide, 0, s.params.runCallbacksOnInit);\n                if (s.params.initialSlide === 0) {\n                    if (s.parallax && s.params.parallax) s.parallax.setTranslate();\n                    if (s.lazy && s.params.lazyLoading) {\n                        s.lazy.load();\n                        s.lazy.initialImageLoaded = true;\n                    }\n                }\n            }\n            s.attachEvents();\n            if (s.params.observer && s.support.observer) {\n                s.initObservers();\n            }\n            if (s.params.preloadImages && !s.params.lazyLoading) {\n                s.preloadImages();\n            }\n            if (s.params.zoom && s.zoom) {\n                s.zoom.init();\n            }\n            if (s.params.autoplay) {\n                s.startAutoplay();\n            }\n            if (s.params.keyboardControl) {\n                if (s.enableKeyboardControl) s.enableKeyboardControl();\n            }\n            if (s.params.mousewheelControl) {\n                if (s.enableMousewheelControl) s.enableMousewheelControl();\n            }\n            // Deprecated hashnavReplaceState changed to replaceState for use in hashnav and history\n            if (s.params.hashnavReplaceState) {\n                s.params.replaceState = s.params.hashnavReplaceState;\n            }\n            if (s.params.history) {\n                if (s.history) s.history.init();\n            }\n            if (s.params.hashnav) {\n                if (s.hashnav) s.hashnav.init();\n            }\n            if (s.params.a11y && s.a11y) s.a11y.init();\n            s.emit('onInit', s);\n        };\n\n        // Cleanup dynamic styles\n        s.cleanupStyles = function () {\n            // Container\n            s.container.removeClass(s.classNames.join(' ')).removeAttr('style');\n\n            // Wrapper\n            s.wrapper.removeAttr('style');\n\n            // Slides\n            if (s.slides && s.slides.length) {\n                s.slides\n                    .removeClass([\n                      s.params.slideVisibleClass,\n                      s.params.slideActiveClass,\n                      s.params.slideNextClass,\n                      s.params.slidePrevClass\n                    ].join(' '))\n                    .removeAttr('style')\n                    .removeAttr('data-swiper-column')\n                    .removeAttr('data-swiper-row');\n            }\n\n            // Pagination/Bullets\n            if (s.paginationContainer && s.paginationContainer.length) {\n                s.paginationContainer.removeClass(s.params.paginationHiddenClass);\n            }\n            if (s.bullets && s.bullets.length) {\n                s.bullets.removeClass(s.params.bulletActiveClass);\n            }\n\n            // Buttons\n            if (s.params.prevButton) $(s.params.prevButton).removeClass(s.params.buttonDisabledClass);\n            if (s.params.nextButton) $(s.params.nextButton).removeClass(s.params.buttonDisabledClass);\n\n            // Scrollbar\n            if (s.params.scrollbar && s.scrollbar) {\n                if (s.scrollbar.track && s.scrollbar.track.length) s.scrollbar.track.removeAttr('style');\n                if (s.scrollbar.drag && s.scrollbar.drag.length) s.scrollbar.drag.removeAttr('style');\n            }\n        };\n\n        // Destroy\n        s.destroy = function (deleteInstance, cleanupStyles) {\n            // Detach evebts\n            s.detachEvents();\n            // Stop autoplay\n            s.stopAutoplay();\n            // Disable draggable\n            if (s.params.scrollbar && s.scrollbar) {\n                if (s.params.scrollbarDraggable) {\n                    s.scrollbar.disableDraggable();\n                }\n            }\n            // Destroy loop\n            if (s.params.loop) {\n                s.destroyLoop();\n            }\n            // Cleanup styles\n            if (cleanupStyles) {\n                s.cleanupStyles();\n            }\n            // Disconnect observer\n            s.disconnectObservers();\n\n            // Destroy zoom\n            if (s.params.zoom && s.zoom) {\n                s.zoom.destroy();\n            }\n            // Disable keyboard/mousewheel\n            if (s.params.keyboardControl) {\n                if (s.disableKeyboardControl) s.disableKeyboardControl();\n            }\n            if (s.params.mousewheelControl) {\n                if (s.disableMousewheelControl) s.disableMousewheelControl();\n            }\n            // Disable a11y\n            if (s.params.a11y && s.a11y) s.a11y.destroy();\n            // Delete history popstate\n            if (s.params.history && !s.params.replaceState) {\n                window.removeEventListener('popstate', s.history.setHistoryPopState);\n            }\n            if (s.params.hashnav && s.hashnav)  {\n                s.hashnav.destroy();\n            }\n            // Destroy callback\n            s.emit('onDestroy');\n            // Delete instance\n            if (deleteInstance !== false) s = null;\n        };\n\n        s.init();\n\n\n\n        // Return swiper instance\n        return s;\n    };\n\n\n    /*==================================================\n        Prototype\n    ====================================================*/\n    Swiper.prototype = {\n        isSafari: (function () {\n            var ua = window.navigator.userAgent.toLowerCase();\n            return (ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0);\n        })(),\n        isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent),\n        isArray: function (arr) {\n            return Object.prototype.toString.apply(arr) === '[object Array]';\n        },\n        /*==================================================\n        Browser\n        ====================================================*/\n        browser: {\n            ie: window.navigator.pointerEnabled || window.navigator.msPointerEnabled,\n            ieTouch: (window.navigator.msPointerEnabled && window.navigator.msMaxTouchPoints > 1) || (window.navigator.pointerEnabled && window.navigator.maxTouchPoints > 1),\n            lteIE9: (function() {\n                // create temporary DIV\n                var div = document.createElement('div');\n                // add content to tmp DIV which is wrapped into the IE HTML conditional statement\n                div.innerHTML = '<!--[if lte IE 9]><i></i><![endif]-->';\n                // return true / false value based on what will browser render\n                return div.getElementsByTagName('i').length === 1;\n            })()\n        },\n        /*==================================================\n        Devices\n        ====================================================*/\n        device: (function () {\n            var ua = window.navigator.userAgent;\n            var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/);\n            var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n            var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n            var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n            return {\n                ios: ipad || iphone || ipod,\n                android: android\n            };\n        })(),\n        /*==================================================\n        Feature Detection\n        ====================================================*/\n        support: {\n            touch : (window.Modernizr && Modernizr.touch === true) || (function () {\n                return !!(('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch);\n            })(),\n\n            transforms3d : (window.Modernizr && Modernizr.csstransforms3d === true) || (function () {\n                var div = document.createElement('div').style;\n                return ('webkitPerspective' in div || 'MozPerspective' in div || 'OPerspective' in div || 'MsPerspective' in div || 'perspective' in div);\n            })(),\n\n            flexbox: (function () {\n                var div = document.createElement('div').style;\n                var styles = ('alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient').split(' ');\n                for (var i = 0; i < styles.length; i++) {\n                    if (styles[i] in div) return true;\n                }\n            })(),\n\n            observer: (function () {\n                return ('MutationObserver' in window || 'WebkitMutationObserver' in window);\n            })(),\n\n            passiveListener: (function () {\n                var supportsPassive = false;\n                try {\n                    var opts = Object.defineProperty({}, 'passive', {\n                        get: function() {\n                            supportsPassive = true;\n                        }\n                    });\n                    window.addEventListener('testPassiveListener', null, opts);\n                } catch (e) {}\n                return supportsPassive;\n            })(),\n\n            gestures: (function () {\n                return 'ongesturestart' in window;\n            })()\n        },\n        /*==================================================\n        Plugins\n        ====================================================*/\n        plugins: {}\n    };\n\n\n    /*===========================\n    Dom7 Library\n    ===========================*/\n    var Dom7 = (function () {\n        var Dom7 = function (arr) {\n            var _this = this, i = 0;\n            // Create array-like object\n            for (i = 0; i < arr.length; i++) {\n                _this[i] = arr[i];\n            }\n            _this.length = arr.length;\n            // Return collection with methods\n            return this;\n        };\n        var $ = function (selector, context) {\n            var arr = [], i = 0;\n            if (selector && !context) {\n                if (selector instanceof Dom7) {\n                    return selector;\n                }\n            }\n            if (selector) {\n                // String\n                if (typeof selector === 'string') {\n                    var els, tempParent, html = selector.trim();\n                    if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n                        var toCreate = 'div';\n                        if (html.indexOf('<li') === 0) toCreate = 'ul';\n                        if (html.indexOf('<tr') === 0) toCreate = 'tbody';\n                        if (html.indexOf('<td') === 0 || html.indexOf('<th') === 0) toCreate = 'tr';\n                        if (html.indexOf('<tbody') === 0) toCreate = 'table';\n                        if (html.indexOf('<option') === 0) toCreate = 'select';\n                        tempParent = document.createElement(toCreate);\n                        tempParent.innerHTML = selector;\n                        for (i = 0; i < tempParent.childNodes.length; i++) {\n                            arr.push(tempParent.childNodes[i]);\n                        }\n                    }\n                    else {\n                        if (!context && selector[0] === '#' && !selector.match(/[ .<>:~]/)) {\n                            // Pure ID selector\n                            els = [document.getElementById(selector.split('#')[1])];\n                        }\n                        else {\n                            // Other selectors\n                            els = (context || document).querySelectorAll(selector);\n                        }\n                        for (i = 0; i < els.length; i++) {\n                            if (els[i]) arr.push(els[i]);\n                        }\n                    }\n                }\n                // Node/element\n                else if (selector.nodeType || selector === window || selector === document) {\n                    arr.push(selector);\n                }\n                //Array of elements or instance of Dom\n                else if (selector.length > 0 && selector[0].nodeType) {\n                    for (i = 0; i < selector.length; i++) {\n                        arr.push(selector[i]);\n                    }\n                }\n            }\n            return new Dom7(arr);\n        };\n        Dom7.prototype = {\n            // Classes and attriutes\n            addClass: function (className) {\n                if (typeof className === 'undefined') {\n                    return this;\n                }\n                var classes = className.split(' ');\n                for (var i = 0; i < classes.length; i++) {\n                    for (var j = 0; j < this.length; j++) {\n                        this[j].classList.add(classes[i]);\n                    }\n                }\n                return this;\n            },\n            removeClass: function (className) {\n                var classes = className.split(' ');\n                for (var i = 0; i < classes.length; i++) {\n                    for (var j = 0; j < this.length; j++) {\n                        this[j].classList.remove(classes[i]);\n                    }\n                }\n                return this;\n            },\n            hasClass: function (className) {\n                if (!this[0]) return false;\n                else return this[0].classList.contains(className);\n            },\n            toggleClass: function (className) {\n                var classes = className.split(' ');\n                for (var i = 0; i < classes.length; i++) {\n                    for (var j = 0; j < this.length; j++) {\n                        this[j].classList.toggle(classes[i]);\n                    }\n                }\n                return this;\n            },\n            attr: function (attrs, value) {\n                if (arguments.length === 1 && typeof attrs === 'string') {\n                    // Get attr\n                    if (this[0]) return this[0].getAttribute(attrs);\n                    else return undefined;\n                }\n                else {\n                    // Set attrs\n                    for (var i = 0; i < this.length; i++) {\n                        if (arguments.length === 2) {\n                            // String\n                            this[i].setAttribute(attrs, value);\n                        }\n                        else {\n                            // Object\n                            for (var attrName in attrs) {\n                                this[i][attrName] = attrs[attrName];\n                                this[i].setAttribute(attrName, attrs[attrName]);\n                            }\n                        }\n                    }\n                    return this;\n                }\n            },\n            removeAttr: function (attr) {\n                for (var i = 0; i < this.length; i++) {\n                    this[i].removeAttribute(attr);\n                }\n                return this;\n            },\n            data: function (key, value) {\n                if (typeof value === 'undefined') {\n                    // Get value\n                    if (this[0]) {\n                        var dataKey = this[0].getAttribute('data-' + key);\n                        if (dataKey) return dataKey;\n                        else if (this[0].dom7ElementDataStorage && (key in this[0].dom7ElementDataStorage)) return this[0].dom7ElementDataStorage[key];\n                        else return undefined;\n                    }\n                    else return undefined;\n                }\n                else {\n                    // Set value\n                    for (var i = 0; i < this.length; i++) {\n                        var el = this[i];\n                        if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n                        el.dom7ElementDataStorage[key] = value;\n                    }\n                    return this;\n                }\n            },\n            // Transforms\n            transform : function (transform) {\n                for (var i = 0; i < this.length; i++) {\n                    var elStyle = this[i].style;\n                    elStyle.webkitTransform = elStyle.MsTransform = elStyle.msTransform = elStyle.MozTransform = elStyle.OTransform = elStyle.transform = transform;\n                }\n                return this;\n            },\n            transition: function (duration) {\n                if (typeof duration !== 'string') {\n                    duration = duration + 'ms';\n                }\n                for (var i = 0; i < this.length; i++) {\n                    var elStyle = this[i].style;\n                    elStyle.webkitTransitionDuration = elStyle.MsTransitionDuration = elStyle.msTransitionDuration = elStyle.MozTransitionDuration = elStyle.OTransitionDuration = elStyle.transitionDuration = duration;\n                }\n                return this;\n            },\n            //Events\n            on: function (eventName, targetSelector, listener, capture) {\n                function handleLiveEvent(e) {\n                    var target = e.target;\n                    if ($(target).is(targetSelector)) listener.call(target, e);\n                    else {\n                        var parents = $(target).parents();\n                        for (var k = 0; k < parents.length; k++) {\n                            if ($(parents[k]).is(targetSelector)) listener.call(parents[k], e);\n                        }\n                    }\n                }\n                var events = eventName.split(' ');\n                var i, j;\n                for (i = 0; i < this.length; i++) {\n                    if (typeof targetSelector === 'function' || targetSelector === false) {\n                        // Usual events\n                        if (typeof targetSelector === 'function') {\n                            listener = arguments[1];\n                            capture = arguments[2] || false;\n                        }\n                        for (j = 0; j < events.length; j++) {\n                            this[i].addEventListener(events[j], listener, capture);\n                        }\n                    }\n                    else {\n                        //Live events\n                        for (j = 0; j < events.length; j++) {\n                            if (!this[i].dom7LiveListeners) this[i].dom7LiveListeners = [];\n                            this[i].dom7LiveListeners.push({listener: listener, liveListener: handleLiveEvent});\n                            this[i].addEventListener(events[j], handleLiveEvent, capture);\n                        }\n                    }\n                }\n\n                return this;\n            },\n            off: function (eventName, targetSelector, listener, capture) {\n                var events = eventName.split(' ');\n                for (var i = 0; i < events.length; i++) {\n                    for (var j = 0; j < this.length; j++) {\n                        if (typeof targetSelector === 'function' || targetSelector === false) {\n                            // Usual events\n                            if (typeof targetSelector === 'function') {\n                                listener = arguments[1];\n                                capture = arguments[2] || false;\n                            }\n                            this[j].removeEventListener(events[i], listener, capture);\n                        }\n                        else {\n                            // Live event\n                            if (this[j].dom7LiveListeners) {\n                                for (var k = 0; k < this[j].dom7LiveListeners.length; k++) {\n                                    if (this[j].dom7LiveListeners[k].listener === listener) {\n                                        this[j].removeEventListener(events[i], this[j].dom7LiveListeners[k].liveListener, capture);\n                                    }\n                                }\n                            }\n                        }\n                    }\n                }\n                return this;\n            },\n            once: function (eventName, targetSelector, listener, capture) {\n                var dom = this;\n                if (typeof targetSelector === 'function') {\n                    targetSelector = false;\n                    listener = arguments[1];\n                    capture = arguments[2];\n                }\n                function proxy(e) {\n                    listener(e);\n                    dom.off(eventName, targetSelector, proxy, capture);\n                }\n                dom.on(eventName, targetSelector, proxy, capture);\n            },\n            trigger: function (eventName, eventData) {\n                for (var i = 0; i < this.length; i++) {\n                    var evt;\n                    try {\n                        evt = new window.CustomEvent(eventName, {detail: eventData, bubbles: true, cancelable: true});\n                    }\n                    catch (e) {\n                        evt = document.createEvent('Event');\n                        evt.initEvent(eventName, true, true);\n                        evt.detail = eventData;\n                    }\n                    this[i].dispatchEvent(evt);\n                }\n                return this;\n            },\n            transitionEnd: function (callback) {\n                var events = ['webkitTransitionEnd', 'transitionend', 'oTransitionEnd', 'MSTransitionEnd', 'msTransitionEnd'],\n                    i, j, dom = this;\n                function fireCallBack(e) {\n                    /*jshint validthis:true */\n                    if (e.target !== this) return;\n                    callback.call(this, e);\n                    for (i = 0; i < events.length; i++) {\n                        dom.off(events[i], fireCallBack);\n                    }\n                }\n                if (callback) {\n                    for (i = 0; i < events.length; i++) {\n                        dom.on(events[i], fireCallBack);\n                    }\n                }\n                return this;\n            },\n            // Sizing/Styles\n            width: function () {\n                if (this[0] === window) {\n                    return window.innerWidth;\n                }\n                else {\n                    if (this.length > 0) {\n                        return parseFloat(this.css('width'));\n                    }\n                    else {\n                        return null;\n                    }\n                }\n            },\n            outerWidth: function (includeMargins) {\n                if (this.length > 0) {\n                    if (includeMargins)\n                        return this[0].offsetWidth + parseFloat(this.css('margin-right')) + parseFloat(this.css('margin-left'));\n                    else\n                        return this[0].offsetWidth;\n                }\n                else return null;\n            },\n            height: function () {\n                if (this[0] === window) {\n                    return window.innerHeight;\n                }\n                else {\n                    if (this.length > 0) {\n                        return parseFloat(this.css('height'));\n                    }\n                    else {\n                        return null;\n                    }\n                }\n            },\n            outerHeight: function (includeMargins) {\n                if (this.length > 0) {\n                    if (includeMargins)\n                        return this[0].offsetHeight + parseFloat(this.css('margin-top')) + parseFloat(this.css('margin-bottom'));\n                    else\n                        return this[0].offsetHeight;\n                }\n                else return null;\n            },\n            offset: function () {\n                if (this.length > 0) {\n                    var el = this[0];\n                    var box = el.getBoundingClientRect();\n                    var body = document.body;\n                    var clientTop  = el.clientTop  || body.clientTop  || 0;\n                    var clientLeft = el.clientLeft || body.clientLeft || 0;\n                    var scrollTop  = window.pageYOffset || el.scrollTop;\n                    var scrollLeft = window.pageXOffset || el.scrollLeft;\n                    return {\n                        top: box.top  + scrollTop  - clientTop,\n                        left: box.left + scrollLeft - clientLeft\n                    };\n                }\n                else {\n                    return null;\n                }\n            },\n            css: function (props, value) {\n                var i;\n                if (arguments.length === 1) {\n                    if (typeof props === 'string') {\n                        if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n                    }\n                    else {\n                        for (i = 0; i < this.length; i++) {\n                            for (var prop in props) {\n                                this[i].style[prop] = props[prop];\n                            }\n                        }\n                        return this;\n                    }\n                }\n                if (arguments.length === 2 && typeof props === 'string') {\n                    for (i = 0; i < this.length; i++) {\n                        this[i].style[props] = value;\n                    }\n                    return this;\n                }\n                return this;\n            },\n\n            //Dom manipulation\n            each: function (callback) {\n                for (var i = 0; i < this.length; i++) {\n                    callback.call(this[i], i, this[i]);\n                }\n                return this;\n            },\n            html: function (html) {\n                if (typeof html === 'undefined') {\n                    return this[0] ? this[0].innerHTML : undefined;\n                }\n                else {\n                    for (var i = 0; i < this.length; i++) {\n                        this[i].innerHTML = html;\n                    }\n                    return this;\n                }\n            },\n            text: function (text) {\n                if (typeof text === 'undefined') {\n                    if (this[0]) {\n                        return this[0].textContent.trim();\n                    }\n                    else return null;\n                }\n                else {\n                    for (var i = 0; i < this.length; i++) {\n                        this[i].textContent = text;\n                    }\n                    return this;\n                }\n            },\n            is: function (selector) {\n                if (!this[0]) return false;\n                var compareWith, i;\n                if (typeof selector === 'string') {\n                    var el = this[0];\n                    if (el === document) return selector === document;\n                    if (el === window) return selector === window;\n\n                    if (el.matches) return el.matches(selector);\n                    else if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n                    else if (el.mozMatchesSelector) return el.mozMatchesSelector(selector);\n                    else if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n                    else {\n                        compareWith = $(selector);\n                        for (i = 0; i < compareWith.length; i++) {\n                            if (compareWith[i] === this[0]) return true;\n                        }\n                        return false;\n                    }\n                }\n                else if (selector === document) return this[0] === document;\n                else if (selector === window) return this[0] === window;\n                else {\n                    if (selector.nodeType || selector instanceof Dom7) {\n                        compareWith = selector.nodeType ? [selector] : selector;\n                        for (i = 0; i < compareWith.length; i++) {\n                            if (compareWith[i] === this[0]) return true;\n                        }\n                        return false;\n                    }\n                    return false;\n                }\n\n            },\n            index: function () {\n                if (this[0]) {\n                    var child = this[0];\n                    var i = 0;\n                    while ((child = child.previousSibling) !== null) {\n                        if (child.nodeType === 1) i++;\n                    }\n                    return i;\n                }\n                else return undefined;\n            },\n            eq: function (index) {\n                if (typeof index === 'undefined') return this;\n                var length = this.length;\n                var returnIndex;\n                if (index > length - 1) {\n                    return new Dom7([]);\n                }\n                if (index < 0) {\n                    returnIndex = length + index;\n                    if (returnIndex < 0) return new Dom7([]);\n                    else return new Dom7([this[returnIndex]]);\n                }\n                return new Dom7([this[index]]);\n            },\n            append: function (newChild) {\n                var i, j;\n                for (i = 0; i < this.length; i++) {\n                    if (typeof newChild === 'string') {\n                        var tempDiv = document.createElement('div');\n                        tempDiv.innerHTML = newChild;\n                        while (tempDiv.firstChild) {\n                            this[i].appendChild(tempDiv.firstChild);\n                        }\n                    }\n                    else if (newChild instanceof Dom7) {\n                        for (j = 0; j < newChild.length; j++) {\n                            this[i].appendChild(newChild[j]);\n                        }\n                    }\n                    else {\n                        this[i].appendChild(newChild);\n                    }\n                }\n                return this;\n            },\n            prepend: function (newChild) {\n                var i, j;\n                for (i = 0; i < this.length; i++) {\n                    if (typeof newChild === 'string') {\n                        var tempDiv = document.createElement('div');\n                        tempDiv.innerHTML = newChild;\n                        for (j = tempDiv.childNodes.length - 1; j >= 0; j--) {\n                            this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n                        }\n                        // this[i].insertAdjacentHTML('afterbegin', newChild);\n                    }\n                    else if (newChild instanceof Dom7) {\n                        for (j = 0; j < newChild.length; j++) {\n                            this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n                        }\n                    }\n                    else {\n                        this[i].insertBefore(newChild, this[i].childNodes[0]);\n                    }\n                }\n                return this;\n            },\n            insertBefore: function (selector) {\n                var before = $(selector);\n                for (var i = 0; i < this.length; i++) {\n                    if (before.length === 1) {\n                        before[0].parentNode.insertBefore(this[i], before[0]);\n                    }\n                    else if (before.length > 1) {\n                        for (var j = 0; j < before.length; j++) {\n                            before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n                        }\n                    }\n                }\n            },\n            insertAfter: function (selector) {\n                var after = $(selector);\n                for (var i = 0; i < this.length; i++) {\n                    if (after.length === 1) {\n                        after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n                    }\n                    else if (after.length > 1) {\n                        for (var j = 0; j < after.length; j++) {\n                            after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n                        }\n                    }\n                }\n            },\n            next: function (selector) {\n                if (this.length > 0) {\n                    if (selector) {\n                        if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) return new Dom7([this[0].nextElementSibling]);\n                        else return new Dom7([]);\n                    }\n                    else {\n                        if (this[0].nextElementSibling) return new Dom7([this[0].nextElementSibling]);\n                        else return new Dom7([]);\n                    }\n                }\n                else return new Dom7([]);\n            },\n            nextAll: function (selector) {\n                var nextEls = [];\n                var el = this[0];\n                if (!el) return new Dom7([]);\n                while (el.nextElementSibling) {\n                    var next = el.nextElementSibling;\n                    if (selector) {\n                        if($(next).is(selector)) nextEls.push(next);\n                    }\n                    else nextEls.push(next);\n                    el = next;\n                }\n                return new Dom7(nextEls);\n            },\n            prev: function (selector) {\n                if (this.length > 0) {\n                    if (selector) {\n                        if (this[0].previousElementSibling && $(this[0].previousElementSibling).is(selector)) return new Dom7([this[0].previousElementSibling]);\n                        else return new Dom7([]);\n                    }\n                    else {\n                        if (this[0].previousElementSibling) return new Dom7([this[0].previousElementSibling]);\n                        else return new Dom7([]);\n                    }\n                }\n                else return new Dom7([]);\n            },\n            prevAll: function (selector) {\n                var prevEls = [];\n                var el = this[0];\n                if (!el) return new Dom7([]);\n                while (el.previousElementSibling) {\n                    var prev = el.previousElementSibling;\n                    if (selector) {\n                        if($(prev).is(selector)) prevEls.push(prev);\n                    }\n                    else prevEls.push(prev);\n                    el = prev;\n                }\n                return new Dom7(prevEls);\n            },\n            parent: function (selector) {\n                var parents = [];\n                for (var i = 0; i < this.length; i++) {\n                    if (selector) {\n                        if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n                    }\n                    else {\n                        parents.push(this[i].parentNode);\n                    }\n                }\n                return $($.unique(parents));\n            },\n            parents: function (selector) {\n                var parents = [];\n                for (var i = 0; i < this.length; i++) {\n                    var parent = this[i].parentNode;\n                    while (parent) {\n                        if (selector) {\n                            if ($(parent).is(selector)) parents.push(parent);\n                        }\n                        else {\n                            parents.push(parent);\n                        }\n                        parent = parent.parentNode;\n                    }\n                }\n                return $($.unique(parents));\n            },\n            find : function (selector) {\n                var foundElements = [];\n                for (var i = 0; i < this.length; i++) {\n                    var found = this[i].querySelectorAll(selector);\n                    for (var j = 0; j < found.length; j++) {\n                        foundElements.push(found[j]);\n                    }\n                }\n                return new Dom7(foundElements);\n            },\n            children: function (selector) {\n                var children = [];\n                for (var i = 0; i < this.length; i++) {\n                    var childNodes = this[i].childNodes;\n\n                    for (var j = 0; j < childNodes.length; j++) {\n                        if (!selector) {\n                            if (childNodes[j].nodeType === 1) children.push(childNodes[j]);\n                        }\n                        else {\n                            if (childNodes[j].nodeType === 1 && $(childNodes[j]).is(selector)) children.push(childNodes[j]);\n                        }\n                    }\n                }\n                return new Dom7($.unique(children));\n            },\n            remove: function () {\n                for (var i = 0; i < this.length; i++) {\n                    if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n                }\n                return this;\n            },\n            add: function () {\n                var dom = this;\n                var i, j;\n                for (i = 0; i < arguments.length; i++) {\n                    var toAdd = $(arguments[i]);\n                    for (j = 0; j < toAdd.length; j++) {\n                        dom[dom.length] = toAdd[j];\n                        dom.length++;\n                    }\n                }\n                return dom;\n            }\n        };\n        $.fn = Dom7.prototype;\n        $.unique = function (arr) {\n            var unique = [];\n            for (var i = 0; i < arr.length; i++) {\n                if (unique.indexOf(arr[i]) === -1) unique.push(arr[i]);\n            }\n            return unique;\n        };\n\n        return $;\n    })();\n\n\n    /*===========================\n     Get Dom libraries\n     ===========================*/\n    var swiperDomPlugins = ['jQuery', 'Zepto', 'Dom7'];\n    for (var i = 0; i < swiperDomPlugins.length; i++) {\n    \tif (window[swiperDomPlugins[i]]) {\n    \t\taddLibraryPlugin(window[swiperDomPlugins[i]]);\n    \t}\n    }\n    // Required DOM Plugins\n    var domLib;\n    if (typeof Dom7 === 'undefined') {\n    \tdomLib = window.Dom7 || window.Zepto || window.jQuery;\n    }\n    else {\n    \tdomLib = Dom7;\n    }\n\n\n    /*===========================\n    Add .swiper plugin from Dom libraries\n    ===========================*/\n    function addLibraryPlugin(lib) {\n        lib.fn.swiper = function (params) {\n            var firstInstance;\n            lib(this).each(function () {\n                var s = new Swiper(this, params);\n                if (!firstInstance) firstInstance = s;\n            });\n            return firstInstance;\n        };\n    }\n\n    if (domLib) {\n        if (!('transitionEnd' in domLib.fn)) {\n            domLib.fn.transitionEnd = function (callback) {\n                var events = ['webkitTransitionEnd', 'transitionend', 'oTransitionEnd', 'MSTransitionEnd', 'msTransitionEnd'],\n                    i, j, dom = this;\n                function fireCallBack(e) {\n                    /*jshint validthis:true */\n                    if (e.target !== this) return;\n                    callback.call(this, e);\n                    for (i = 0; i < events.length; i++) {\n                        dom.off(events[i], fireCallBack);\n                    }\n                }\n                if (callback) {\n                    for (i = 0; i < events.length; i++) {\n                        dom.on(events[i], fireCallBack);\n                    }\n                }\n                return this;\n            };\n        }\n        if (!('transform' in domLib.fn)) {\n            domLib.fn.transform = function (transform) {\n                for (var i = 0; i < this.length; i++) {\n                    var elStyle = this[i].style;\n                    elStyle.webkitTransform = elStyle.MsTransform = elStyle.msTransform = elStyle.MozTransform = elStyle.OTransform = elStyle.transform = transform;\n                }\n                return this;\n            };\n        }\n        if (!('transition' in domLib.fn)) {\n            domLib.fn.transition = function (duration) {\n                if (typeof duration !== 'string') {\n                    duration = duration + 'ms';\n                }\n                for (var i = 0; i < this.length; i++) {\n                    var elStyle = this[i].style;\n                    elStyle.webkitTransitionDuration = elStyle.MsTransitionDuration = elStyle.msTransitionDuration = elStyle.MozTransitionDuration = elStyle.OTransitionDuration = elStyle.transitionDuration = duration;\n                }\n                return this;\n            };\n        }\n        if (!('outerWidth' in domLib.fn)) {\n            domLib.fn.outerWidth = function (includeMargins) {\n                if (this.length > 0) {\n                    if (includeMargins)\n                        return this[0].offsetWidth + parseFloat(this.css('margin-right')) + parseFloat(this.css('margin-left'));\n                    else\n                        return this[0].offsetWidth;\n                }\n                else return null;\n            };\n        }\n    }\n\n\n    window.Swiper = Swiper;\n})();\n\n/*===========================\nSwiper AMD Export\n===========================*/\nif (typeof(module) !== 'undefined')\n{\n    module.exports = window.Swiper;\n}\nelse if (typeof define === 'function' && define.amd) {\n    define([], function () {\n        'use strict';\n        return window.Swiper;\n    });\n}\n\n//# sourceMappingURL=maps/swiper.js.map\n"
  },
  {
    "path": "swiper/style.css",
    "content": " /*Define a container of sliders.*/\n.swiper-container {\n  margin-left: auto;\n  margin-right: auto;\n  position: relative;\n  overflow: hidden;\n  z-index: 1;\n}\n.swiper-container-fullscreen {\n  height: 100%;\n}\n.swipper-gallery {\n  height: 300px;\n}\n.swiper-container-no-flexbox .swiper-slide {\n  float: left;\n}\n.swiper-container-vertical > .swiper-wrapper {\n  -webkit-box-orient: vertical;\n  -moz-box-orient: vertical;\n  -ms-flex-direction: column;\n  -webkit-flex-direction: column;\n  flex-direction: column;\n}\n/*Define a wrapper of swiper.*/\n.swiper-wrapper {\n  position: relative;\n  width: 100%;\n  z-index: 1;\n  height: 100%;\n  display: -webkit-box;\n  display: -moz-box;\n  display: -ms-flexbox;\n  display: -webkit-flex;\n  display: flex;\n  -webkit-transition-property: -webkit-transform;\n  -moz-transition-property: -moz-transform;\n  -o-transition-property: -o-transform;\n  -ms-transition-property: -ms-transform;\n  transition-property: transform;\n  -webkit-box-sizing: content-box;\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n}\n.swiper-container-android .swiper-slide,\n.swiper-wrapper {\n  -webkit-transform: translate3d(0px, 0, 0);\n  -moz-transform: translate3d(0px, 0, 0);\n  -o-transform: translate(0px, 0px);\n  -ms-transform: translate3d(0px, 0, 0);\n  transform: translate3d(0px, 0, 0);\n}\n.swiper-container-multirow > .swiper-wrapper {\n  -webkit-box-lines: multiple;\n  -moz-box-lines: multiple;\n  -ms-flex-wrap: wrap;\n  -webkit-flex-wrap: wrap;\n  flex-wrap: wrap;\n}\n.swiper-container-free-mode > .swiper-wrapper {\n  -webkit-transition-timing-function: ease-out;\n  -moz-transition-timing-function: ease-out;\n  -ms-transition-timing-function: ease-out;\n  -o-transition-timing-function: ease-out;\n  transition-timing-function: ease-out;\n  margin: 0 auto;\n}\n/*Define a element slide.*/\n.swiper-slide {\n  -webkit-flex-shrink: 0;\n  -ms-flex: 0 0 auto;\n  flex-shrink: 0;\n  width: 100%;\n  height: 100%;\n  position: relative;\n}\n/*Align all elements in the center of vertical.*/\n.swiper-slide.vertical-align-center {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  padding: 30px;\n  text-align: center;\n}\n.swiper-slide i {\n  font-size: 120px;\n}\n.swiper-slide h1 {\n  font-size: 40px;\n  font-weight: 600;\n  width: 100%;\n}\n.swiper-slide h2 {\n  font-size: 30px;\n  font-weight: 600;\n  width: 100%;\n}\n.swiper-slide .margin-bottom {\n  margin-bottom: 25px;\n}\n/* Auto Height */\n.swiper-container-autoheight .swiper-slide, .swiper-container-autoheight {\n  height: auto;\n}\n.swiper-container-autoheight .swiper-wrapper {\n  -webkit-box-align: start;\n  -ms-flex-align: start;\n  -webkit-align-items: flex-start;\n  align-items: flex-start;\n  -webkit-transition-property: -webkit-transform, height;\n  -moz-transition-property: -moz-transform;\n  -o-transition-property: -o-transform;\n  -ms-transition-property: -ms-transform;\n  transition-property: transform, height;\n}\n/* a11y */\n.swiper-container .swiper-notification {\n  position: absolute;\n  left: 0;\n  top: 0;\n  pointer-events: none;\n  opacity: 0;\n  z-index: -1000;\n}\n/* Windows Phone 8 Fixes */\n.swiper-wp8-horizontal {\n  -ms-touch-action: pan-y;\n  touch-action: pan-y;\n}\n.swiper-wp8-vertical {\n  -ms-touch-action: pan-x;\n  touch-action: pan-x;\n}\n/* Arrows */\n.swiper-button-prev,\n.swiper-button-next {\n  position: absolute;\n  top: 50%;\n  width: 27px;\n  height: 44px;\n  margin-top: -22px;\n  z-index: 10;\n  cursor: pointer;\n  -moz-background-size: 27px 44px;\n  -webkit-background-size: 27px 44px;\n  background-size: 27px 44px;\n  background-position: center;\n  background-repeat: no-repeat;\n}\n.swiper-button-prev.swiper-button-disabled,\n.swiper-button-next.swiper-button-disabled {\n  opacity: 0.35;\n  cursor: auto;\n  pointer-events: none;\n}\n.swiper-button-prev,\n.swiper-container-rtl .swiper-button-next {\n  background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E\");\n  left: 10px;\n  right: auto;\n}\n.swiper-button-prev.swiper-button-black,\n.swiper-container-rtl .swiper-button-next.swiper-button-black {\n  background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E\");\n}\n.swiper-button-prev.swiper-button-white,\n.swiper-container-rtl .swiper-button-next.swiper-button-white {\n  background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E\");\n}\n.swiper-button-next,\n.swiper-container-rtl .swiper-button-prev {\n  background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E\");\n  right: 10px;\n  left: auto;\n}\n.swiper-button-next.swiper-button-black,\n.swiper-container-rtl .swiper-button-prev.swiper-button-black {\n  background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E\");\n}\n.swiper-button-next.swiper-button-white,\n.swiper-container-rtl .swiper-button-prev.swiper-button-white {\n  background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E\");\n}\n/* Pagination Styles */\n.swiper-pagination {\n  position: absolute;\n  text-align: center;\n  -webkit-transition: 300ms;\n  -moz-transition: 300ms;\n  -o-transition: 300ms;\n  transition: 300ms;\n  -webkit-transform: translate3d(0, 0, 0);\n  -ms-transform: translate3d(0, 0, 0);\n  -o-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n  z-index: 10;\n}\n.swiper-pagination.swiper-pagination-hidden {\n  opacity: 0;\n}\n/* Common Styles */\n.swiper-pagination-fraction,\n.swiper-pagination-custom,\n.swiper-container-horizontal > .swiper-pagination-bullets {\n  bottom: 10px;\n  left: 0;\n  width: 100%;\n}\n/* Bullets */\n.swiper-pagination-bullet {\n  width: 8px;\n  height: 8px;\n  display: inline-block;\n  border-radius: 100%;\n  background: #000;\n  opacity: 0.2;\n}\nbutton.swiper-pagination-bullet {\n  border: none;\n  margin: 0;\n  padding: 0;\n  box-shadow: none;\n  -moz-appearance: none;\n  -ms-appearance: none;\n  -webkit-appearance: none;\n  appearance: none;\n}\n.swiper-pagination-clickable .swiper-pagination-bullet {\n  cursor: pointer;\n}\n/*Define a white bullet pagination.*/\n.swiper-pagination-white {\n\n}\n/*Define a black bullet pagination.*/\n.swiper-pagination-black {\n\n}\n.swiper-pagination-white .swiper-pagination-bullet {\n  background: #fff;\n}\n.swiper-pagination-bullet-active {\n  opacity: 1;\n  background: #007aff;\n}\n.swiper-pagination-white .swiper-pagination-bullet-active {\n  background: #fff;\n}\n.swiper-pagination-black .swiper-pagination-bullet-active {\n  background: #000;\n}\n.swiper-container-vertical > .swiper-pagination-bullets {\n  right: 10px;\n  top: 50%;\n  -webkit-transform: translate3d(0px, -50%, 0);\n  -moz-transform: translate3d(0px, -50%, 0);\n  -o-transform: translate(0px, -50%);\n  -ms-transform: translate3d(0px, -50%, 0);\n  transform: translate3d(0px, -50%, 0);\n}\n.swiper-container-vertical > .swiper-pagination-bullets .swiper-pagination-bullet {\n  margin: 5px 0;\n  display: block;\n}\n.swiper-container-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet {\n  margin: 0 5px;\n}\n/* Progress */\n.swiper-pagination-progress {\n  background: rgba(0, 0, 0, 0.25);\n  position: absolute;\n}\n.swiper-pagination-progress .swiper-pagination-progressbar {\n  background: #007aff;\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  -webkit-transform: scale(0);\n  -ms-transform: scale(0);\n  -o-transform: scale(0);\n  transform: scale(0);\n  -webkit-transform-origin: left top;\n  -moz-transform-origin: left top;\n  -ms-transform-origin: left top;\n  -o-transform-origin: left top;\n  transform-origin: left top;\n}\n.swiper-container-rtl .swiper-pagination-progress .swiper-pagination-progressbar {\n  -webkit-transform-origin: right top;\n  -moz-transform-origin: right top;\n  -ms-transform-origin: right top;\n  -o-transform-origin: right top;\n  transform-origin: right top;\n}\n.swiper-container-horizontal > .swiper-pagination-progress {\n  width: 100%;\n  height: 4px;\n  left: 0;\n  top: 0;\n}\n.swiper-container-vertical > .swiper-pagination-progress {\n  width: 4px;\n  height: 100%;\n  left: 0;\n  top: 0;\n}\n.swiper-pagination-progress.swiper-pagination-white {\n  background: rgba(255, 255, 255, 0.5);\n}\n.swiper-pagination-progress.swiper-pagination-white .swiper-pagination-progressbar {\n  background: #fff;\n}\n.swiper-pagination-progress.swiper-pagination-black .swiper-pagination-progressbar {\n  background: #000;\n}\n/* 3D Container */\n.swiper-container-3d {\n  -webkit-perspective: 1200px;\n  -moz-perspective: 1200px;\n  -o-perspective: 1200px;\n  perspective: 1200px;\n}\n.swiper-container-3d .swiper-wrapper,\n.swiper-container-3d .swiper-slide,\n.swiper-container-3d .swiper-slide-shadow-left,\n.swiper-container-3d .swiper-slide-shadow-right,\n.swiper-container-3d .swiper-slide-shadow-top,\n.swiper-container-3d .swiper-slide-shadow-bottom,\n.swiper-container-3d .swiper-cube-shadow {\n  -webkit-transform-style: preserve-3d;\n  -moz-transform-style: preserve-3d;\n  -ms-transform-style: preserve-3d;\n  transform-style: preserve-3d;\n}\n.swiper-container-3d .swiper-slide-shadow-left,\n.swiper-container-3d .swiper-slide-shadow-right,\n.swiper-container-3d .swiper-slide-shadow-top,\n.swiper-container-3d .swiper-slide-shadow-bottom {\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  pointer-events: none;\n  z-index: 10;\n}\n.swiper-container-3d .swiper-slide-shadow-left {\n  background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));\n  background-image: -webkit-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n  background-image: -moz-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n  background-image: -o-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n  background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n}\n.swiper-container-3d .swiper-slide-shadow-right {\n  background-image: -webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));\n  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n  background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n}\n.swiper-container-3d .swiper-slide-shadow-top {\n  background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));\n  background-image: -webkit-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n  background-image: -moz-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n  background-image: -o-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n  background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n}\n.swiper-container-3d .swiper-slide-shadow-bottom {\n  background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));\n  background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n  background-image: -moz-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n  background-image: -o-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n}\n.swiper-container-coverflow .swiper-wrapper,\n.swiper-container-flip .swiper-wrapper {\n  -ms-perspective: 1200px;\n}\n.swiper-container-cube,\n.swiper-container-flip {\n  overflow: visible;\n}\n.swiper-container-cube .swiper-slide,\n.swiper-container-flip .swiper-slide {\n  pointer-events: none;\n  -webkit-backface-visibility: hidden;\n  -moz-backface-visibility: hidden;\n  -ms-backface-visibility: hidden;\n  backface-visibility: hidden;\n  z-index: 1;\n}\n.swiper-container-cube .swiper-slide .swiper-slide,\n.swiper-container-flip .swiper-slide .swiper-slide {\n  pointer-events: none;\n}\n.swiper-container-cube .swiper-slide-active,\n.swiper-container-flip .swiper-slide-active,\n.swiper-container-cube .swiper-slide-active .swiper-slide-active,\n.swiper-container-flip .swiper-slide-active .swiper-slide-active {\n  pointer-events: auto;\n}\n.swiper-container-cube .swiper-slide-shadow-top,\n.swiper-container-flip .swiper-slide-shadow-top,\n.swiper-container-cube .swiper-slide-shadow-bottom,\n.swiper-container-flip .swiper-slide-shadow-bottom,\n.swiper-container-cube .swiper-slide-shadow-left,\n.swiper-container-flip .swiper-slide-shadow-left,\n.swiper-container-cube .swiper-slide-shadow-right,\n.swiper-container-flip .swiper-slide-shadow-right {\n  z-index: 0;\n  -webkit-backface-visibility: hidden;\n  -moz-backface-visibility: hidden;\n  -ms-backface-visibility: hidden;\n  backface-visibility: hidden;\n}\n.swiper-container-cube .swiper-slide {\n  visibility: hidden;\n  -webkit-transform-origin: 0 0;\n  -moz-transform-origin: 0 0;\n  -ms-transform-origin: 0 0;\n  transform-origin: 0 0;\n  width: 100%;\n  height: 100%;\n}\n.swiper-container-cube.swiper-container-rtl .swiper-slide {\n  -webkit-transform-origin: 100% 0;\n  -moz-transform-origin: 100% 0;\n  -ms-transform-origin: 100% 0;\n  transform-origin: 100% 0;\n}\n.swiper-container-cube .swiper-slide-active,\n.swiper-container-cube .swiper-slide-next,\n.swiper-container-cube .swiper-slide-prev,\n.swiper-container-cube .swiper-slide-next + .swiper-slide {\n  pointer-events: auto;\n  visibility: visible;\n}\n.swiper-container-cube .swiper-cube-shadow {\n  position: absolute;\n  left: 0;\n  bottom: 0px;\n  width: 100%;\n  height: 100%;\n  background: #000;\n  opacity: 0.6;\n  -webkit-filter: blur(50px);\n  filter: blur(50px);\n  z-index: 0;\n}\n.swiper-container-fade.swiper-container-free-mode .swiper-slide {\n  -webkit-transition-timing-function: ease-out;\n  -moz-transition-timing-function: ease-out;\n  -ms-transition-timing-function: ease-out;\n  -o-transition-timing-function: ease-out;\n  transition-timing-function: ease-out;\n}\n.swiper-container-fade .swiper-slide {\n  pointer-events: none;\n  -webkit-transition-property: opacity;\n  -moz-transition-property: opacity;\n  -o-transition-property: opacity;\n  transition-property: opacity;\n}\n.swiper-container-fade .swiper-slide .swiper-slide {\n  pointer-events: none;\n}\n.swiper-container-fade .swiper-slide-active,\n.swiper-container-fade .swiper-slide-active .swiper-slide-active {\n  pointer-events: auto;\n}\n.swiper-zoom-container {\n  width: 100%;\n  height: 100%;\n  display: -webkit-box;\n  display: -moz-box;\n  display: -ms-flexbox;\n  display: -webkit-flex;\n  display: flex;\n  -webkit-box-pack: center;\n  -moz-box-pack: center;\n  -ms-flex-pack: center;\n  -webkit-justify-content: center;\n  justify-content: center;\n  -webkit-box-align: center;\n  -moz-box-align: center;\n  -ms-flex-align: center;\n  -webkit-align-items: center;\n  align-items: center;\n  text-align: center;\n}\n.swiper-zoom-container > img,\n.swiper-zoom-container > svg,\n.swiper-zoom-container > canvas {\n  max-width: 100%;\n  max-height: 100%;\n  object-fit: contain;\n}\n/* Scrollbar */\n.swiper-scrollbar {\n  border-radius: 10px;\n  position: relative;\n  -ms-touch-action: none;\n  background: rgba(0, 0, 0, 0.1);\n}\n.swiper-container-horizontal > .swiper-scrollbar {\n  position: absolute;\n  left: 1%;\n  bottom: 3px;\n  z-index: 50;\n  height: 5px;\n  width: 98%;\n}\n.swiper-container-vertical > .swiper-scrollbar {\n  position: absolute;\n  right: 3px;\n  top: 1%;\n  z-index: 50;\n  width: 5px;\n  height: 98%;\n}\n.swiper-scrollbar-drag {\n  height: 100%;\n  width: 100%;\n  position: relative;\n  background: rgba(0, 0, 0, 0.5);\n  border-radius: 10px;\n  left: 0;\n  top: 0;\n}\n.swiper-scrollbar-cursor-drag {\n  cursor: move;\n}\n/* Preloader */\n.swiper-lazy-preloader {\n  width: 42px;\n  height: 42px;\n  position: absolute;\n  left: 50%;\n  top: 50%;\n  margin-left: -21px;\n  margin-top: -21px;\n  z-index: 10;\n  -webkit-transform-origin: 50%;\n  -moz-transform-origin: 50%;\n  transform-origin: 50%;\n  -webkit-animation: swiper-preloader-spin 1s steps(12, end) infinite;\n  -moz-animation: swiper-preloader-spin 1s steps(12, end) infinite;\n  animation: swiper-preloader-spin 1s steps(12, end) infinite;\n}\n.swiper-lazy-preloader:after {\n  display: block;\n  content: \"\";\n  width: 100%;\n  height: 100%;\n  background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E\");\n  background-position: 50%;\n  -webkit-background-size: 100%;\n  background-size: 100%;\n  background-repeat: no-repeat;\n}\n.swiper-lazy-preloader-white:after {\n  background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%23fff'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E\");\n}\n@-webkit-keyframes swiper-preloader-spin {\n  100% {\n    -webkit-transform: rotate(360deg);\n  }\n}\n@keyframes swiper-preloader-spin {\n  100% {\n    transform: rotate(360deg);\n  }\n}\n"
  },
  {
    "path": "tab/component.json",
    "content": "{\n  \"name\":\"tab\",\n  \"author\": \"fabiorogeriosj\",\n  \"dependencies\": [\n    \"base\",\n    \"button\"\n  ]\n}\n"
  },
  {
    "path": "tab/index.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <title></title>\n  <link href=\"https://fonts.googleapis.com/css?family=Dosis|Raleway:400,700|Roboto:300,400,900,\" rel=\"stylesheet\">\n  <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n  <link rel=\"stylesheet\" href=\"../base/reset.css\">\n  <link rel=\"stylesheet\" href=\"../base/mobileui.css\">\n  <link rel=\"stylesheet\" href=\"../base/colors.css\">\n  <link rel=\"stylesheet\" href=\"../base/icons.css\">\n  <link rel=\"stylesheet\" href=\"../header/style.css\">\n  <link rel=\"stylesheet\" href=\"../button/style.css\">\n  <link rel=\"stylesheet\" href=\"../list/style.css\">\n  <link rel=\"stylesheet\" href=\"../cover/style.css\">\n  <link rel=\"stylesheet\" href=\"style.css\">\n  <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n  <style>\n    .content {\n      margin-left: 50px\n    }\n  </style>\n  <script type=\"text/javascript\" src=\"script.js\"></script>\n</head>\n<body class=\"content\">\n  <!-- BEGIN -->\n  <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">Tab</h2>\n  <p>\n    Tabs are a horizontal region of buttons or links that allow for a consistent navigation experience between screens.\n    It can contain any combination of text and icons, and is a popular method for enabling mobile navigation.\n  </p>\n  <div class=\"dependency tooltip\">\n    <strong>Dependency:</strong> <code>base</code> and <code>button</code>.\n    <span class=\"tooltiptext\">The dependencies will be installed together with this module</span>\n  </div>\n  <p>\n    To use this component you need install with the command:\n  </p>\n  <pre>mobileui install tab</pre>\n  <!-- _DOC_GENERATE_CSS_DOC -->\n  <p>\n    Your tab need have <code>id</code> and for you open tab, just call function openTab('ID_YOUR_TAB'). For init you tab opne you need add class `active` in your button by tab and in your content of tab.\n    See this small example:\n  </p>\n<textarea class=\"bind-code\" mode=\"text/html\" header-absolute=\"true\" replace=\"body,div|grey-200,grey-200 body\" height-preview=\"200px\" border=\"true\" multiplatform=\"true\">\n<body class=\"padding pink-50 has-header has-sub-header\">\n  <div class=\"header pink\">\n    <div class=\"left\">\n      <button class=\"icon ion-navicon\"></button>\n    </div>\n    <h1>Profile</h1>\n  </div>\n  <div class=\"header pink sub shadow tab\">\n    <button class=\"icon ion-android-person active\" onclick=\"openTab('tabAbout')\">About</button>\n    <button class=\"icon ion-android-list\" onclick=\"openTab('tabEvents')\">Events</button>\n    <button class=\"icon ion-android-chat\" onclick=\"openTab('tabMessages')\">Messages</button>\n    <button class=\"icon ion-android-people\" onclick=\"openTab('tabGroups')\">Groups</button>\n  </div>\n  <div class=\"tab-content active\" id=\"tabAbout\">\n    <h2 class=\"text-strong padding text-pink\">Tab About</h2>\n    <p>\n      Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n    </p>\n  </div>\n  <div class=\"tab-content\" id=\"tabEvents\">\n    <h2 class=\"text-strong padding text-pink\">Tab Events</h2>\n    <p>\n      Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n    </p>\n  </div>\n  <div class=\"tab-content\" id=\"tabMessages\">\n    <h2 class=\"text-strong padding text-pink\">Tab Messages</h2>\n    <p>\n      Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n    </p>\n  </div>\n  <div class=\"tab-content\" id=\"tabGroups\">\n    <h2 class=\"text-strong padding text-pink\">Tab Groups</h2>\n    <p>\n      Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n    </p>\n  </div>\n</body></textarea>\n  <p>You can put your tab in footer and using just icon</p>\n<textarea class=\"bind-code\" mode=\"text/html\" header-absolute=\"true\" replace=\"body,div|grey-200,grey-200 body\" height-preview=\"200px\" border=\"true\" multiplatform=\"true\">\n<body class=\"padding pink-50 has-header has-footer\">\n  <div class=\"header pink\">\n    <div class=\"left\">\n      <button class=\"icon ion-navicon\"></button>\n    </div>\n    <h1>Profile</h1>\n  </div>\n  <div class=\"footer pink shadow tab\">\n    <button class=\"icon ion-android-person active\" onclick=\"openTab('myTabAbout')\">About</button>\n    <button class=\"icon ion-android-list\" onclick=\"openTab('myTabEvents')\">Events</button>\n    <button class=\"icon ion-android-chat\" onclick=\"openTab('myTabMessages')\">Messages</button>\n    <button class=\"icon ion-android-people\" onclick=\"openTab('myTabGroups')\">Groups</button>\n  </div>\n  <div class=\"tab-content active\" id=\"myTabAbout\">\n    <h2 class=\"text-strong padding text-pink\">Tab About</h2>\n    <p>\n      Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n    </p>\n  </div>\n  <div class=\"tab-content\" id=\"myTabEvents\">\n    <h2 class=\"text-strong padding text-pink\">Tab Events</h2>\n    <p>\n      Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n    </p>\n  </div>\n  <div class=\"tab-content\" id=\"myTabMessages\">\n    <h2 class=\"text-strong padding text-pink\">Tab Messages</h2>\n    <p>\n      Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n    </p>\n  </div>\n  <div class=\"tab-content\" id=\"myTabGroups\">\n    <h2 class=\"text-strong padding text-pink\">Tab Groups</h2>\n    <p>\n      Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n    </p>\n  </div>\n</body></textarea>\n  <p>\n    See this good example using another components MobileUI :)\n  </p>\n<textarea class=\"bind-code\" mode=\"text/html\" header-absolute=\"true\" replace=\"body,div|grey-200,grey-200 body\" height-preview=\"400px\" border=\"true\" multiplatform=\"true\">\n<body class=\"grey-50 has-header has-sub-header\">\n  <div class=\"header green-900\">\n    <h1>WhatsApp</h1>\n    <div class=\"right\">\n      <button class=\"icon ion-android-search\"></button>\n      <button class=\"icon ion-android-more-vertical\"></button>\n    </div>\n\n  </div>\n  <div class=\"header green-900 sub shadow tab\">\n    <button class=\"text-white active\" onclick=\"openTab('tabChats')\">\n      Chats <span class=\"badge white text-green-900\">1</span>\n    </button>\n    <button class=\"text-white\" onclick=\"openTab('tabStatus')\">Status</button>\n    <button class=\"text-white\" onclick=\"openTab('tabCalls')\">Calls</button>\n  </div>\n  <div class=\"tab-content active\" id=\"tabChats\">\n    <div class=\"list\">\n      <div class=\"item\">\n        <div class=\"left\">\n          <img class=\"avatar circle\" src=\"../assets/img/80.jpg\" >\n        </div>\n        <div class=\"right align-top text-small text-green\">\n          13:15\n        </div>\n        <h2 class=\"text-strong\">Jeanette Fletcher</h2>\n        <p class=\"text-grey-700 ellipsis\">Lorem ipsum  😋😋😋 dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor</p>\n      </div>\n      <div class=\"item\">\n        <div class=\"left\">\n          <img class=\"avatar circle\" src=\"../assets/img/33.jpg\" >\n        </div>\n        <div class=\"right align-top text-small\">\n          13:07\n        </div>\n        <h2 class=\"text-strong\">Carter Hudson</h2>\n        <p class=\"text-grey-700 ellipsis\"><i class=\"icon ion-camera grey\"></i> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor</p>\n      </div>\n      <div class=\"item\">\n        <div class=\"left\">\n          <img class=\"avatar circle\" src=\"../assets/img/96.jpg\" >\n        </div>\n        <div class=\"right align-top text-small\">\n          12:26\n        </div>\n        <h2 class=\"text-strong\">Juster Mark Slow</h2>\n        <p class=\"text-grey-700 ellipsis\">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor</p>\n      </div>\n    </div>\n  </div>\n  <div class=\"tab-content\" id=\"tabStatus\">\n    <div class=\"list\">\n      <div class=\"item\">\n        <div class=\"left\">\n          <div class=\"icon-circle green\">\n            <i class=\"icon ion-android-add\"></i>\n          </div>\n        </div>\n        <h2 class=\"text-strong\">My Status</h2>\n        <p class=\"text-grey-700 ellipsis\">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor</p>\n      </div>\n      <div class=\"item grey-200\">\n        <p class=\"text-green text-small\">Last status your friends</p>\n      </div>\n      <div class=\"item\">\n        <div class=\"left\">\n          <img class=\"avatar circle border-green border-big\" src=\"../assets/img/96.jpg\" >\n        </div>\n        <h2 class=\"text-strong\">Juster Mark Slow</h2>\n        <p class=\"text-grey-700 ellipsis\">Today, 12:10</p>\n      </div>\n      <div class=\"item\">\n        <div class=\"left\">\n          <img class=\"avatar circle border-grey border-big\" src=\"../assets/img/33.jpg\" >\n        </div>\n        <h2 class=\"text-strong\">Carter Hudson</h2>\n        <p class=\"text-grey-700 ellipsis\">Today, 11:22</p>\n      </div>\n    </div>\n  </div>\n  <div class=\"tab-content\" id=\"tabCalls\">\n    <div class=\"list\">\n      <div class=\"item\">\n        <div class=\"left\">\n          <img class=\"avatar circle\" src=\"../assets/img/80.jpg\" >\n        </div>\n        <div class=\"right\">\n          <i class=\"icon text-huge ion-android-call text-green-900\"></i>\n        </div>\n        <h2 class=\"text-strong\">Jeanette Fletcher</h2>\n        <p class=\"text-grey-700 ellipsis\">\n          <i class=\"icon ion-arrow-left-b green\"></i> May, 5, 13:25\n        </p>\n      </div>\n      <div class=\"item\">\n        <div class=\"left\">\n          <img class=\"avatar circle\" src=\"../assets/img/33.jpg\" >\n        </div>\n        <div class=\"right\">\n          <i class=\"icon text-huge ion-android-call text-green-900\"></i>\n        </div>\n        <h2 class=\"text-strong\">Carter Hudson</h2>\n        <p class=\"text-grey-700 ellipsis\">\n          <i class=\"icon ion-arrow-left-b red\"></i> May, 5, 11:15\n        </p>\n      </div>\n      <div class=\"item\">\n        <div class=\"left\">\n          <img class=\"avatar circle\" src=\"../assets/img/96.jpg\" >\n        </div>\n        <div class=\"right\">\n          <i class=\"icon text-huge ion-android-call text-green-900\"></i>\n        </div>\n        <h2 class=\"text-strong\">Juster Mark Slow</h2>\n        <p class=\"text-grey-700 ellipsis\">\n          <i class=\"icon ion-arrow-right-b green\"></i> May, 5, 13:25\n        </p>\n      </div>\n    </div>\n  </div>\n</body></textarea>\n  <!-- DONE -->\n  <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n  <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n  <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n  <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "tab/script.js",
    "content": "window.openTab = function(t){\n  var button = event.target;\n  while (!button.parentNode.classList.contains('tab')) {\n    if(button.nodeName == 'BODY') {\n      console.error('The component tab not found, please check your code.');\n      return false;\n     }\n    button = button.parentNode\n  }\n  var tabContent = document.getElementById(t).parentNode.getElementsByClassName('tab-content');\n  var buttonActived = button.parentNode.getElementsByClassName('active');\n  for (var i = 0; i < tabContent.length; i++) {\n    tabContent[i].setAttribute('class',tabContent[i].getAttribute('class').replace('active',''));\n  }\n  for (var i = 0; i < buttonActived.length; i++) {\n    buttonActived[i].setAttribute('class',buttonActived[i].getAttribute('class').replace('active',''));\n  }\n  button.setAttribute('class', button.getAttribute('class') + ' active');\n  document.getElementById(t).setAttribute('class', document.getElementById(t).getAttribute('class') + ' active');\n}\n"
  },
  {
    "path": "tab/style.css",
    "content": "/*Define a new tab.*/\n.tab {\n  display: -webkit-box !important;\n  display: -ms-flexbox !important;\n  display: flex !important;\n}\n/*Define a area content by tab*/\n.tab-content {\n  display: none;\n}\n/*Define that tab and ab-content is open.*/\n.tab-content.active {\n  display: block;\n}\n.tab button {\n  -webkit-box-flex: 1;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  font-size: 13px !important;\n  text-transform: uppercase;\n  opacity: 0.6;\n  margin: 0;\n}\n.footer.tab button.icon {\n  margin-top: 0;\n}\n.header.tab.shadow {\n    box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.2);\n}\n.platform-ios .tab button {\n  text-transform: none;\n}\n.tab button.active {\n  opacity: 1;\n}\n.tab button.icon {\n  font-size: 14px;\n  line-height: 16px;\n}\n.tab button::before {\n  display: block;\n  font-size: 25px;\n}\n.tab button.active::after {\n  content: '';\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 3px;\n  background-color: #fff;\n}\n/*Create a badge in tab.*/\n.tab button .badge {\n  width: 20px;\n  height: 20px;\n  margin-left: 10px;\n  text-align: center;\n  font-size: 14px;\n  font-weight: bold;\n  border-radius: 50%;\n  margin-top: 10px;\n  position: absolute;\n  line-height: 18px;\n  padding-top: 1px;\n}\n.tab.footer button.active::after {\n  top: 0;\n}\n.header.tab.footer.shadow {\n    box-shadow: -2px -2px 3px rgba(0, 0, 0, 0.2);\n}\n.platform-ios .tab button.active::after {\n  display: none;\n}\n"
  },
  {
    "path": "timeline/component.json",
    "content": "{\n  \"name\":\"timeline\",\n  \"author\": \"gustavoquinalha\",\n  \"dependencies\": [\"base\", \"grid\"]\n}\n"
  },
  {
    "path": "timeline/index.html",
    "content": "<!DOCTYPE html>\n<html>\n\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <title></title>\n  <link href=\"https://fonts.googleapis.com/css?family=Dosis|Raleway:400,700|Roboto:300,400,900,\" rel=\"stylesheet\">\n  <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n  <link rel=\"stylesheet\" href=\"../base/reset.css\">\n  <link rel=\"stylesheet\" href=\"../base/mobileui.css\">\n  <link rel=\"stylesheet\" href=\"../base/colors.css\">\n  <link rel=\"stylesheet\" href=\"../base/icons.css\">\n  <link rel=\"stylesheet\" href=\"../header/style.css\">\n  <link rel=\"stylesheet\" href=\"../button/style.css\">\n  <link rel=\"stylesheet\" href=\"../list/style.css\">\n  <link rel=\"stylesheet\" href=\"../cover/style.css\">\n  <link rel=\"stylesheet\" href=\"../grid/style.css\">\n  <link rel=\"stylesheet\" href=\"style.css\">\n  <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n  <style>\n    .content {\n      margin-left: 50px;\n      width: calc(100% - 50px);\n    }\n  </style>\n</head>\n\n<body class=\"content\">\n  <!-- BEGIN -->\n  <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">Timeline</h2>\n  <p>\n    To use this component you need install with the command:\n  </p>\n  <pre>mobileui install timeline</pre>\n  <!-- _DOC_GENERATE_CSS_DOC -->\n<textarea class=\"bind-code\" mode=\"text/html\">\n<body class=\"has-header grey-100\">\n  <div class=\"header cyan-300 text-white\">\n    <div class=\"left\">\n      <button class=\"icon ion-navicon-round\"></button>\n    </div>\n    <div class=\"title text-center\">\n      Wednesday\n    </div>\n    <div class=\"right\">\n      <button class=\"icon ion-search\"></button>\n    </div>\n  </div>\n  <div class=\"row cyan-300 space-between vertical-align-center\" style=\"height: 100px\">\n    <div class=\"col-10\">\n      <button class=\"icon ion-chevron-left text-white\"></button>\n    </div>\n    <div class=\"col align-center\">\n      <span class=\"text-white text-huge\">15</span>\n    </div>\n    <div class=\"col-10\">\n      <button class=\"icon ion-chevron-right text-white\"></button>\n    </div>\n  </div>\n  <div class=\"row vertical-align-center cyan text-white\">\n    <div class=\"col-10\">\n      <button class=\"icon ion-android-add-circle text-white\"></button>\n    </div>\n    <div class=\"col align-center\">\n      DECEMBER 2016\n    </div>\n    <div class=\"col-10\">\n      <button class=\"icon ion-calendar text-white\"></button>\n    </div>\n  </div>\n  <div class=\"timeline grey-100\">\n    <div class=\"row\">\n      <div class=\"col-10 align-center marker\">\n        <div class=\"icon-circle-small text-white cyan-700\">\n          <i class=\"icon ion-home\"></i>\n        </div>\n      </div>\n      <div class=\"col shadow radius margin white\" >\n        <div class=\"margin\">\n          <h2><span class=\"text-bold\">8:00</span> File preparation</h2>\n        </div>\n      </div>\n    </div>\n    <div class=\"row\">\n      <div class=\"col-10 align-center marker\">\n        <div class=\"icon-circle-small text-white cyan-700\">\n          <i class=\"icon ion-home\"></i>\n        </div>\n      </div>\n      <div class=\"col shadow radius margin white\">\n        <div class=\"margin\">\n          <h2><span class=\"text-bold\">10:00</span> Webshop mockups discussions</h2>\n          <p class=\"text-grey\">Lorem ipsum dolor sit amet, consectetur adipisicing elit aliqua.</p>\n          <br />\n          <div class=\"row\">\n            <div class=\"col-10\">\n              <small class=\"text-grey-400\">with:</small>\n            </div>\n            <div class=\"col\">\n              <div class=\"row avatar-group\">\n                <div class=\"avatar-photo circle\">\n                  <img src=\"../assets/img/33.jpg\" width=\"30\" alt=\"\">\n                </div>\n                <div class=\"avatar-photo circle\">\n                  <img src=\"../assets/img/53.jpg\" width=\"30\" alt=\"\">\n                </div>\n                <div class=\"avatar-photo circle\">\n                  <img src=\"../assets/img/65.jpg\" width=\"30\" alt=\"\">\n                </div>\n                <div class=\"avatar-photo circle\">\n                  <img src=\"../assets/img/80.jpg\" width=\"30\" alt=\"\">\n                </div>\n                <div class=\"avatar-photo circle\">\n                  <img src=\"../assets/img/33.jpg\" width=\"30\" alt=\"\">\n                </div>\n                <div class=\"circle-more\">\n                  <div class=\"\">\n                    +3\n                  </div>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"row\">\n      <div class=\"col-10 align-center marker\">\n        <div class=\"col icon-circle-small text-white cyan-700\">\n          <i class=\"icon ion-home\"></i>\n        </div>\n      </div>\n      <div class=\"col shadow radius margin white\" >\n        <div class=\"margin\">\n          <h2><span class=\"text-bold\">10:00</span> Webshop mockups discussions</h2>\n          <p class=\"text-grey\">Lorem ipsum dolor sit amet, consectetur adipisicing elit aliqua.</p>\n        </div>\n      </div>\n    </div>\n  </div>\n</body></textarea>\n\n  <!-- DONE -->\n  <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n  <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n  <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n  <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n</body>\n\n</html>\n"
  },
  {
    "path": "timeline/style.css",
    "content": "/*Define a timeline component.*/\n.timeline {\n  font-size: 14px;\n  padding: 2px;\n}\n.timeline .marker {\n  position: relative;\n}\n.timeline .marker::before {\n  background: rgba(0,0,0,0.3);\n  content: \"\";\n  height: 100%;\n  width: 2px;\n  margin: 0 auto;\n  position: absolute;\n  margin-top: 10px;\n  z-index: 0;\n  left: 18px;\n}\n.timeline .row:last-child .marker::before {\n  display: none;\n}\n.timeline .icon-circle,\n.timeline .icon-circle-small,\n.timeline .icon-circle-big {\n  margin: 0 auto;\n  margin-top: 10px;\n  position: absolute;\n  margin-left: 7px;\n}\n.timeline .icon-circle i::before,\n.timeline .icon-circle-small i::before,\n.timeline .icon-circle-big i::before {\n  margin-top: 4px;\n}\n.timeline .avatar-group {\n  -webkit-transform: translateX(10px);\n          transform: translateX(10px);\n}\n.timeline .avatar-photo {\n  background: #eaeaea;\n  width: 30px;\n  height: 30px;\n  overflow: hidden;\n  text-align: center;\n  border: 1px solid #d7d2d2\n}\n.timeline .avatar-photo small {\n  margin-top: 100px;\n}\n.timeline .circle-more {\n  background: #eaeaea;\n  width: 30px;\n  height: 30px;\n  overflow: hidden;\n  text-align: center;\n  border-radius: 50%;\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-box-pack: center;\n      -ms-flex-pack: center;\n          justify-content: center;\n  -webkit-box-align: center;\n      -ms-flex-align: center;\n          align-items: center;\n  color: #bdbbbb;\n  border: 1px solid #d7d2d2;\n  font-size: 12px;\n}\n"
  },
  {
    "path": "toast/component.json",
    "content": "{\n  \"name\":\"toast\",\n  \"author\": \"lucasssv\",\n  \"dependencies\": [\n    \"base\"\n  ]\n}\n"
  },
  {
    "path": "toast/index.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <title></title>\n  <link href=\"https://fonts.googleapis.com/css?family=Dosis|Raleway:400,700|Roboto:300,400,500,600,900,\" rel=\"stylesheet\">\n  <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.css\">\n  <link rel=\"stylesheet\" href=\"../base/reset.css\">\n  <link rel=\"stylesheet\" href=\"../base/mobileui.css\">\n  <link rel=\"stylesheet\" href=\"../base/colors.css\">\n  <link rel=\"stylesheet\" href=\"../base/icons.css\">\n  <link rel=\"stylesheet\" href=\"../header/style.css\">\n  <link rel=\"stylesheet\" href=\"../button/style.css\">\n  <link rel=\"stylesheet\" href=\"../list/style.css\">\n  <link rel=\"stylesheet\" href=\"../input/style.css\">\n  <link rel=\"stylesheet\" href=\"../cover/style.css\">\n  <link rel=\"stylesheet\" href=\"style.css\">\n  <link rel=\"stylesheet\" href=\"../assets/css/master.css\">\n  <style>\n    .content {\n      margin-left: 50px\n    }\n  </style>\n  <script type=\"text/javascript\" src=\"script.js\"></script>\n</head>\n<body class=\"content\">\n  <!-- BEGIN -->\n  <h2 class=\"title-doc\" id=\"_DOC_GENERATE_SPACE_\">Toast</h2>\n  <p>\n      A toast provides simple feedback about an operation in a small popup. It only fills the amount of space required for the message and the current activity remains visible and interactive. Toasts automatically disappear after a timeout.\n  </p>\n  <div class=\"dependency tooltip\">\n    <strong>Dependency:</strong> <code>base</code>.\n    <span class=\"tooltiptext\">The dependencies will be installed together with this module</span>\n  </div>\n  <p>\n    To use this component you need install with the command:\n  </p>\n  <pre>mobileui install toast</pre>\n  <!-- _DOC_GENERATE_CSS_DOC -->\n  <p>\n    To use, you need to call the function <code>openToast('YOUR MESSAGE')</code> or <code>openToast(objectCustomized)</code>.\n  </p>\n  <p>\n    See this small example:\n  </p>\n<textarea class=\"bind-code\" mode=\"text/html\" header-absolute=\"true\" replace=\"body,div|padding,padding body\" border=\"true\" height-preview=\"400px\" multiplatform=\"true\">\n  <body class=\"padding body\">\n  <button class=\"blue full radius margin-bottom\" onclick=\"openToast('Simple message here Simp')\">Show toast</button>\n  <button class=\"blue full radius margin-bottom\" onclick=\"openToastTop()\">Show toast top</button>\n  <button class=\"blue full radius margin-bottom\" onclick=\"openToastCenter()\">Show toast center</button>\n  <button class=\"blue full radius margin-bottom\" onclick=\"openToastRed()\">Show toast red</button>\n  <button class=\"blue full radius margin-bottom\" onclick=\"openCustomToast()\">Show custom toast</button>\n\n  <script>\n    function openToastTop() {\n      openToast({\n        message: 'Simple message in top!',\n        position: 'top'\n      })\n    }\n    function openToastCenter() {\n      openToast({\n        message: 'Simple message in center!',\n        position: 'center'\n      })\n    }\n    function openToastRed() {\n      openToast({\n        message: 'Simple red message!',\n        class: 'red radius-big'\n      })\n    }\n    function openCustomToast() {\n      openToast({\n        message: 'Custom message',\n        class: 'full text-big text-strong black-opacity-70 text-white',\n        position: 'top',\n      })\n    }\n  </script>\n</body>\n</textarea>\n\n  <!-- DONE -->\n  <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js\"></script>\n  <script src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/codemirror.min.js\"></script>\n  <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.0/mode/xml/xml.min.js\"></script>\n  <script type=\"text/javascript\" src=\"../assets/js/main.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "toast/script.js",
    "content": "window.openToast = function (config) {\n  var defaultConfig = {\n    class: 'black radius padding shadow',\n    duration: 2000,\n    position: 'bottom',\n    onclick: window.closeToast\n  }\n  if (typeof config === 'string') {\n    defaultConfig.message = config\n  }\n  if (typeof config === 'object' && config.message) {\n    defaultConfig.message = config.message\n  }\n  if (typeof config === 'object' && config.class) {\n    defaultConfig.class = config.class\n  }\n  if (typeof config === 'object' && config.duration) {\n    defaultConfig.duration = config.duration\n  }\n  if (typeof config === 'object' && config.position) {\n    defaultConfig.position = 'toast-' + config.position\n  }\n  if (typeof config === 'object' && config.onclick) {\n    defaultConfig.onclick = config.onclick\n  }\n\n  var body = document.getElementsByTagName('body')[0]\n  if (event && event.target && event.target.parentNode && event.target.parentNode.className.indexOf('body') >= 0) {\n    body = event.target.parentNode\n  }\n\n  var toast = document.createElement('div')\n  toast.className = 'toast'\n  toast.classList.add(defaultConfig.position)\n\n  var spanToast = document.createElement('div')\n  spanToast.className = defaultConfig.class\n  spanToast.innerHTML = defaultConfig.message\n  spanToast.onclick = defaultConfig.onclick\n\n  toast.appendChild(spanToast)\n  body.appendChild(toast)\n\n  setTimeout(function() {\n    toast.classList.add('show')\n  }, 100)\n\n  setTimeout(function() {\n    if(!toast) return false\n    toast.classList.remove('show')\n    setTimeout(function() {\n      if(!toast.parentNode) return false\n      toast.parentNode.removeChild(toast)\n    }, 400)\n  }, defaultConfig.duration)\n}\n\nwindow.closeToast = function(event) {\n  event.target.parentNode.classList.remove('show')\n  setTimeout(function() {\n    event.target.parentNode.parentNode.removeChild(event.target.parentNode)\n  }, 400) \n}"
  },
  {
    "path": "toast/style.css",
    "content": "/* Show a Toast message (a little text popup) */\n.toast {\n  z-index: 999999;\n  position: absolute;\n  left: 0;\n  padding: 20px;\n  text-align: center;\n  width: 100%;\n  opacity: 0;\n  transition: opacity .25s ease-in-out;\n  -moz-transition: opacity .25s ease-in-out;\n  -webkit-transition: opacity .25s ease-in-out;\n}\n.toast.show {\n  opacity: 1;\n}\n.toast.toast-bottom {\n  bottom: 10px;\n}\n.toast.toast-top {\n  top: 10px;\n}\n.toast.toast-center {\n  display: -webkit-box; \n  display: -moz-box;\n  display: -ms-flexbox;\n  display: -webkit-flex; \n  display: flex;\n  justify-content: center;\n  -webkit-box-align: center;\n  -moz-box-align: center;\n  -ms-flex-align: center;\n  -webkit-align-items: center;\n  align-items: center;\n  height: 100%;\n  top: 0;\n}\n.toast div {\n  padding: 10px;\n  display: inline-block;\n}\n.toast .full {\n  display: block;\n  width: 100%;\n}"
  }
]