{
  "1.30": {
    "": {
      "Gramex 1.30 Release Notes": -1
    },
    "bugs": {
      "Bugs": -1
    },
    "config-reload": {
      "Config reload": -1
    },
    "documentation": {
      "Documentation": -1
    },
    "log-viewer": {
      "Log viewer": -1
    },
    "multiple-logins": {
      "Multiple logins": -1
    },
    "oauth2-login": {
      "OAuth2 login": -1
    },
    "others": {
      "Others": -1
    },
    "proxy-apis": {
      "Proxy APIs": -1
    },
    "sms-notification": {
      "SMS notification": -1
    },
    "stats": {
      "Stats": -1
    },
    "upgrade": {
      "Upgrade": -1
    }
  },
  "1.31": {
    "": {
      "Gramex 1.31 Release Notes": -1
    },
    "alert-preview": {
      "Alert preview": -1
    },
    "api-integration": {
      "API integration": -1
    },
    "charts": {
      "Charts": -1
    },
    "developer-updates": {
      "Developer updates": -1
    },
    "formhandler-directory-browsing": {
      "FormHandler directory browsing": -1
    },
    "http-error-reporting": {
      "HTTP error reporting": -1
    },
    "installation": {
      "Installation": -1
    },
    "lato-font": {
      "Lato font": -1
    },
    "log-viewer": {
      "Log viewer": -1
    },
    "path-arguments": {
      "Path arguments": -1
    },
    "prevent-url-conflicts": {
      "Prevent URL conflicts": -1
    },
    "repository-moved": {
      "Repository moved": -1
    },
    "stats": {
      "Stats": -1
    },
    "upgrade": {
      "Upgrade": -1
    }
  },
  "1.32": {
    "": {
      "Gramex 1.32 Release Notes": -1
    },
    "capturehandler-proxy": {
      "CaptureHandler Proxy": -1
    },
    "gramex-init": {
      "Gramex init": -1
    },
    "internal-bugfixes": {
      "Internal bugfixes": -1
    },
    "logviewer-configuration": {
      "Logviewer configuration": -1
    },
    "stats": {
      "Stats": -1
    },
    "tornado-50": {
      "Tornado 5.0": -1
    },
    "upgrade": {
      "Upgrade": -1
    },
    "yaml-merge-variables": {
      "YAML merge variables": -1
    }
  },
  "1.33": {
    "": {
      "Gramex 1.33 Release Notes": -1
    },
    "add-roles-to-users": {
      "Add roles to users": -1
    },
    "admin-module": {
      "Admin module": -1
    },
    "formhandler-charts": {
      "FormHandler charts": -1
    },
    "multi-process-logging": {
      "Multi-process logging": -1
    },
    "other-enhancements": {
      "Other enhancements": -1
    },
    "quickstart-tutorial": {
      "Quickstart tutorial": -1
    },
    "sanddance": {
      "Sanddance": -1
    },
    "screenshot-alerts-as-user": {
      "Screenshot alerts as user": -1
    },
    "stats": {
      "Stats": -1
    },
    "upgrade": {
      "Upgrade": -1
    }
  },
  "1.34": {
    "": {
      "Gramex 1.34 Release Notes": -1
    },
    "ajax-xsrf": {
      "AJAX XSRF": -1
    },
    "anton-font": {
      "Anton font": -1
    },
    "config-viewer": {
      "Config Viewer": -1
    },
    "deprecations": {
      "Deprecations": -1
    },
    "developer-updates": {
      "Developer updates": -1
    },
    "formhandler-json": {
      "FormHandler JSON": -1
    },
    "internal-bugfixes": {
      "Internal bugfixes": -1
    },
    "others": {
      "Others": -1
    },
    "server-traceback": {
      "Server Traceback": -1
    },
    "stats": {
      "Stats": -1
    },
    "upgrade": {
      "Upgrade": -1
    },
    "vega-examples": {
      "Vega Examples": -1
    }
  },
  "1.35": {
    "": {
      "Gramex 1.35 Release Notes": -1
    },
    "admin-module": {
      "Admin module": -1
    },
    "formhandler-tutorial": {
      "FormHandler tutorial": -1
    },
    "modelhandler": {
      "ModelHandler": -1
    },
    "other-enhancements": {
      "Other enhancements": -1
    },
    "others": {
      "Others": -1
    },
    "pip10": {
      "pip10": -1
    },
    "stats": {
      "Stats": -1
    },
    "upgrade": {
      "Upgrade": -1
    }
  },
  "1.36": {
    "": {
      "Gramex 1.36 Release Notes": -1
    },
    "bug-fixes": {
      "Bug fixes": -1
    },
    "exotel-sms-service": {
      "Exotel SMS service": -1
    },
    "mapviewer": {
      "Mapviewer": -1
    },
    "other-enhancements": {
      "Other enhancements": -1
    },
    "python-3-tests": {
      "Python 3 tests": -1
    },
    "redis-store": {
      "Redis Store": -1
    },
    "sms-auth": {
      "SMS Auth": -1
    },
    "stats": {
      "Stats": -1
    },
    "upgrade": {
      "Upgrade": -1
    }
  },
  "1.37": {
    "": {
      "Gramex 1.37 Release Notes": -1
    },
    "apache-reverse-proxy": {
      "Apache reverse proxy": -1
    },
    "bug-fixes": {
      "Bug fixes": -1
    },
    "capturehandler-tutorial": {
      "CaptureHandler tutorial": -1
    },
    "developer-updates": {
      "Developer Updates": -1
    },
    "r-interface": {
      "R interface": -1
    },
    "stats": {
      "Stats": -1
    },
    "upgrade": {
      "Upgrade": -1
    }
  },
  "1.38": {
    "": {
      "Gramex 1.38 Release Notes": -1
    },
    "apache-load-balancing": {
      "Apache Load Balancing": -1
    },
    "bug-fixes": {
      "Bug fixes": -1
    },
    "developer-updates": {
      "Developer Updates": -1
    },
    "emailauth": {
      "EmailAuth": -1
    },
    "formhandler-group-by": {
      "FormHandler Group By": -1
    },
    "g1": {
      "g1": -1
    },
    "quickstart": {
      "Quickstart": -1
    },
    "stats": {
      "Stats": -1
    },
    "upgrade": {
      "Upgrade": -1
    },
    "uploadhandler": {
      "UploadHandler": -1
    }
  },
  "1.39": {
    "": {
      "Gramex 1.39 Release Notes": -1
    },
    "bug-fixes": {
      "Bug fixes": -1
    },
    "developer-updates": {
      "Developer Updates": -1
    },
    "formhandler": {
      "FormHandler": -1
    },
    "logviewer": {
      "Logviewer": -1
    },
    "mapviewer": {
      "MapViewer": -1
    },
    "pynode": {
      "PyNode": -1
    },
    "stats": {
      "Stats": -1
    },
    "ui-components": {
      "UI Components": -1
    },
    "upgrade": {
      "Upgrade": -1
    }
  },
  "1.40": {
    "": {
      "Gramex 1.40 Release Notes": -1
    },
    "bug-fixes": {
      "Bug fixes": -1
    },
    "developer-updates": {
      "Developer Updates": -1
    },
    "dropdown-events": {
      "$.dropdown events": -1
    },
    "filterhandler": {
      "FilterHandler": -1
    },
    "formhandler-modify": {
      "FormHandler modify": -1
    },
    "g1": {
      "g1": -1
    },
    "g1-dropdown": {
      "g1 dropdown": -1
    },
    "logviewer": {
      "Logviewer": -1
    },
    "mapviewer": {
      "MapViewer": -1
    },
    "password-encryption": {
      "Password Encryption": -1
    },
    "smart-alerts": {
      "Smart Alerts": -1
    },
    "speech-demo": {
      "Speech Demo": -1
    },
    "stats": {
      "Stats": -1
    },
    "upgrade": {
      "Upgrade": -1
    }
  },
  "1.41": {
    "": {
      "Gramex 1.41 Release Notes": -1
    },
    "40x-reporting": {
      "40X reporting": -1
    },
    "ajax-uploads": {
      "AJAX Uploads": -1
    },
    "bug-fixes": {
      "Bug fixes": -1
    },
    "developer-updates": {
      "Developer Updates": -1
    },
    "error-reporting": {
      "Error Reporting": -1
    },
    "favicon": {
      "Favicon": -1
    },
    "g1": {
      "g1": -1
    },
    "g1-urlfilter": {
      "g1 urlfilter": -1
    },
    "gramex-update": {
      "Gramex Update": -1
    },
    "guide-link-checker": {
      "Guide Link Checker": -1
    },
    "guide-search": {
      "Guide Search": -1
    },
    "install": {
      "Install": -1
    },
    "logviewer": {
      "Logviewer": -1
    },
    "python-console": {
      "Python console": -1
    },
    "stats": {
      "Stats": -1
    },
    "ui-componenets": {
      "UI Componenets": -1
    },
    "upgrade": {
      "Upgrade": -1
    }
  },
  "1.42": {
    "": {
      "Gramex 1.42 Release Notes": -1
    },
    "admin-module": {
      "Admin Module": -1
    },
    "bug-fixes": {
      "Bug fixes": -1
    },
    "developer-updates": {
      "Developer Updates": -1
    },
    "offline-docker-install": {
      "Offline Docker Install": -1
    },
    "stats": {
      "Stats": -1
    },
    "upgrade": {
      "Upgrade": -1
    },
    "webshell": {
      "Webshell": -1
    }
  },
  "1.43": {
    "": {
      "Gramex 1.43 Release Notes": -1
    },
    "bug-fixes": {
      "Bug fixes": -1
    },
    "developer-updates": {
      "Developer Updates": -1
    },
    "formhandler-edits-modify": {
      "FormHandler Edits Modify": -1
    },
    "stats": {
      "Stats": -1
    },
    "upgrade": {
      "Upgrade": -1
    }
  },
  "1.44": {
    "": {
      "Gramex 1.44 Release Notes": -1
    },
    "admin-gramex-info": {
      "Admin gramex info": -1
    },
    "bug-fixes": {
      "Bug fixes": -1
    },
    "eula": {
      "EULA": -1
    },
    "formhandler-supports-urls": {
      "FormHandler supports URLs": -1
    },
    "g1": {
      "g1": -1
    },
    "groupmeans": {
      "Groupmeans": -1
    },
    "rmarkdown": {
      "RMarkdown": -1
    },
    "stats": {
      "Stats": -1
    },
    "upgrade": {
      "Upgrade": -1
    },
    "vega-gallery": {
      "Vega gallery": -1
    }
  },
  "1.45": {
    "": {
      "Gramex 1.45 Release Notes": -1
    },
    "actions": {
      "Actions": -1
    },
    "admin": {
      "Admin": -1
    },
    "auth": {
      "Auth": -1
    },
    "bootstrap-select": {
      "bootstrap-select": -1
    },
    "developer-updates": {
      "Developer Updates": -1
    },
    "dropzonejs": {
      "dropzonejs": -1
    },
    "g1": {
      "g1": -1
    },
    "stats": {
      "Stats": -1
    },
    "ui-components": {
      "UI Components": -1
    },
    "upgrade": {
      "Upgrade": -1
    },
    "vega-gallery": {
      "Vega gallery": -1
    }
  },
  "1.46": {
    "": {
      "Gramex 1.46 Release Notes": -1
    },
    "admin": {
      "Admin": -1
    },
    "admin-console-webshell": {
      "Admin console (webshell)": -1
    },
    "admin-info": {
      "Admin info": -1
    },
    "bootstrapbundlejs": {
      "bootstrap.bundle.js": -1
    },
    "developer-updates": {
      "Developer Updates": -1
    },
    "gramex-init": {
      "gramex init": -1
    },
    "modelhandler": {
      "ModelHandler": -1
    },
    "other-updates": {
      "Other Updates": -1
    },
    "stats": {
      "Stats": -1
    },
    "upgrade": {
      "Upgrade": -1
    },
    "vega-gallery": {
      "Vega gallery": -1
    }
  },
  "about": {
    "": {
      "About Gramex": -1
    }
  },
  "admin": {
    "": {
      "Admin page": -1
    },
    "admin-access": {
      "Admin access": -1
    },
    "admin-config": {
      "Admin: Config": -1
    },
    "admin-info": {
      "Admin: Info": -1
    },
    "admin-logs": {
      "Admin: Logs": -1
    },
    "admin-page": {
      "Admin page": -1
    },
    "admin-page-old": {
      "Admin page (old)": -1
    },
    "admin-shell": {
      "Admin: Shell": -1
    },
    "admin-user-management": {
      "Admin: User management": -1
    }
  },
  "alert": {
    "": {
      "Smart alerts": -1
    },
    "alert-api": {
      "Alert API": -1
    },
    "alert-command-line": {
      "Alert command line": -1
    },
    "alert-configuration": {
      "Alert configuration": -1
    },
    "alert-examples": {
      "Alert examples": -1
    },
    "alert-logs": {
      "Alert logs": -1
    },
    "alert-preview": {
      "Alert preview": -1
    },
    "alert-setup": {
      "Alert setup": -1
    },
    "avoid-re-sending-emails": {
      "Avoid re-sending emails": -1
    },
    "dynamic-emails-from-data": {
      "Dynamic emails from data": -1
    },
    "email-dashboards": {
      "Email dashboards": -1
    },
    "email-multiple-people": {
      "Email multiple people": -1
    },
    "mail-merge-change-content-by-user": {
      "Mail merge: change content by user": -1
    },
    "place-body-and-html-in-a-file": {
      "Place body and HTML in a file": -1
    },
    "send-a-scheduled-email": {
      "Send a scheduled email": -1
    },
    "send-alerts-on-condition": {
      "Send alerts on condition": -1
    },
    "send-as-a-different-user": {
      "Send as a different user": -1
    },
    "send-attachments": {
      "Send attachments": -1
    },
    "send-html-email": {
      "Send HTML email": -1
    },
    "send-inline-images": {
      "Send inline images": -1
    },
    "use-multiple-datasets": {
      "Use multiple datasets": -1
    },
    "use-multiple-services": {
      "Use multiple services": -1
    },
    "use-templates": {
      "Use templates": -1
    }
  },
  "apps": {
    "": {
      "Gramex Apps": -1
    },
    "creating-apps": {
      "Creating apps": -1
    },
    "deploying-app-data": {
      "Deploying app data": -1
    },
    "installing-apps": {
      "Installing apps": -1
    },
    "running-apps": {
      "Running apps": -1
    },
    "setting-up-apps": {
      "Setting up apps": -1
    },
    "uninstalling-apps": {
      "Uninstalling apps": -1
    },
    "updating-apps": {
      "Updating apps": -1
    }
  },
  "auth": {
    "": {
      "Auth handlers log in users": -1
    },
    "ajax-login": {
      "AJAX login": -1
    },
    "authentication": {
      "Authentication": -1
    },
    "authentication-features": {
      "Authentication features": -1
    },
    "authorization": {
      "Authorization": -1
    },
    "automated-logins": {
      "Automated logins": -1
    },
    "bind-ldap-login": {
      "Bind LDAP login": -1
    },
    "change-inputs": {
      "Change inputs": -1
    },
    "database-auth": {
      "Database auth": -1
    },
    "decrypt-the-user-key-the-decrypted-user-will-be-the-same-as-user": {
      "Decrypt the user key. The decrypted user will be the same as user": -1
    },
    "direct-ldap-login": {
      "Direct LDAP login": -1
    },
    "email-auth": {
      "Email Auth": -1
    },
    "encrypted-user": {
      "Encrypted user": -1
    },
    "facebook-auth": {
      "Facebook auth": -1
    },
    "forgot-password": {
      "Forgot password": -1
    },
    "get-the-encrypted-user-key-as-a-long-string-eg-rx5nqv1lxaa0qi": {
      "Get the encrypted user key as a long string, e.g. rx5/NQV1lXaA0QI...": -1
    },
    "google-auth": {
      "Google auth": -1
    },
    "inactive-expiry": {
      "Inactive expiry": -1
    },
    "integrated-auth": {
      "Integrated auth": -1
    },
    "ldap-attributes": {
      "LDAP attributes": -1
    },
    "ldap-auth": {
      "LDAP auth": -1
    },
    "log-out": {
      "Log out": -1
    },
    "logging-logins": {
      "Logging logins": -1
    },
    "login-actions": {
      "Login actions": -1
    },
    "login-templates": {
      "Login templates": -1
    },
    "login-urls": {
      "Login URLs": -1
    },
    "lookup-attributes": {
      "Lookup attributes": -1
    },
    "loop-through-each-session-store-there-may-be-multiple-stores": {
      "Loop through each session store -- there may be multiple stores": -1
    },
    "oauth2": {
      "OAuth2": -1
    },
    "otp": {
      "OTP": -1
    },
    "replace-the-below-line-with-the-relevant-version-for-your-system": {
      "Replace the below line with the relevant version for your system": -1
    },
    "roles": {
      "Roles": -1
    },
    "saml-auth": {
      "SAML Auth": -1
    },
    "session-data": {
      "Session data": -1
    },
    "session-expiry": {
      "Session expiry": -1
    },
    "sessions": {
      "Sessions": -1
    },
    "sign-up": {
      "Sign up": -1
    },
    "simple-auth": {
      "Simple auth": -1
    },
    "sms-auth": {
      "SMS Auth": -1
    },
    "ssl-certificate-error": {
      "SSL certificate error": -1
    },
    "templates-for-unauthorized": {
      "Templates for unauthorized": -1
    },
    "this-is-the-user-object-we-want-to-mimic": {
      "This is the user object we want to mimic": -1
    },
    "twitter-auth": {
      "Twitter auth": -1
    },
    "user-attributes": {
      "User attributes": -1
    }
  },
  "cache": {
    "": {
      "Caching requests": -1
    },
    "browser-caching": {
      "Browser caching": -1
    },
    "cache-expiry": {
      "Cache expiry": -1
    },
    "cache-keys": {
      "Cache keys": -1
    },
    "cache-static-files": {
      "Cache static files": -1
    },
    "cache-status": {
      "Cache status": -1
    },
    "cache-stores": {
      "Cache stores": -1
    },
    "data-caching": {
      "Data caching": -1
    },
    "mixing-python-versions": {
      "Mixing Python versions": -1
    },
    "module-caching": {
      "Module caching": -1
    },
    "query-caching": {
      "Query caching": -1
    },
    "server-caching": {
      "Server caching": -1
    },
    "subprocess-streaming": {
      "Subprocess streaming": -1
    },
    "using-cache-stores": {
      "Using cache stores": -1
    }
  },
  "capturehandler": {
    "": {
      "CaptureHandler takes screenshots": -1
    },
    "chrome": {
      "Chrome": -1
    },
    "phantomjs": {
      "PhantomJS": -1
    },
    "screenshot-library": {
      "Screenshot library": -1
    },
    "screenshot-service": {
      "Screenshot service": -1
    }
  },
  "chart": {
    "": {
      "Gramex Charts": -1
    },
    "d3": {
      "D3": -1
    },
    "gramex-charts": {
      "Gramex Charts": -1
    },
    "vega": {
      "Vega": -1
    }
  },
  "config": {
    "": {
      "Configurations control Gramex": -1
    },
    "app-configuration": {
      "App configuration": -1
    },
    "bad": {
      "BAD": -1
    },
    "command-line-args": {
      "Command line args": -1
    },
    "computed-variables": {
      "Computed variables": -1
    },
    "conditional-variables": {
      "Conditional variables": -1
    },
    "conditions": {
      "Conditions": -1
    },
    "config-viewer": {
      "Config Viewer": -1
    },
    "configuration-access": {
      "Configuration access": -1
    },
    "custom-http-headers": {
      "Custom HTTP Headers": -1
    },
    "custom-mime-types": {
      "Custom MIME types": -1
    },
    "dynamic-configuration": {
      "Dynamic configuration": -1
    },
    "error-handlers": {
      "Error handlers": -1
    },
    "good": {
      "GOOD": -1
    },
    "handler-logging": {
      "Handler logging": -1
    },
    "if-gramex-is-installed-in-a-certain-location-eg-c": {
      "If Gramex is installed in a certain location, e.g. C:": -1
    },
    "if-gramex-is-running-from-a-specific-location-eg-tmp": {
      "If Gramex is running from a specific location, e.g. /tmp/": -1
    },
    "if-gramex-is-running-on-a-certain-platform-eg-win32-linux-cygwin-darwin": {
      "If Gramex is running on a certain platform, e.g. win32, linux, cygwin, darwin": -1
    },
    "if-gramex-is-running-on-a-specific-server-eg-uatgramenercom": {
      "If Gramex is running on a specific server, e.g. uat.gramener.com:": -1
    },
    "if-gramex-was-started-at-a-specific-time-eg-on-sunday-7": {
      "If Gramex was started at a specific time, e.g. on Sunday (7)": -1
    },
    "if-gramex-was-started-with-a-specific-command-line-eg-listenport8001": {
      "If Gramex was started with a specific command line, e.g. --listen.port=8001": -1
    },
    "logging": {
      "Logging": -1
    },
    "merging-variables": {
      "Merging variables": -1
    },
    "predefined-variables": {
      "Predefined variables": -1
    },
    "redirection": {
      "Redirection": -1
    },
    "request-logging": {
      "Request logging": -1
    },
    "reusing-configurations": {
      "Reusing configurations": -1
    },
    "scheduling": {
      "Scheduling": -1
    },
    "url-mapping": {
      "URL mapping": -1
    },
    "user-logging": {
      "User logging": -1
    },
    "yaml-duplicate-keys": {
      "YAML duplicate keys": -1
    },
    "yaml-imports": {
      "YAML imports": -1
    },
    "yaml-inheritence": {
      "YAML inheritence": -1
    },
    "yaml-namespaces": {
      "YAML namespaces": -1
    },
    "yaml-styling": {
      "YAML styling": -1
    },
    "yaml-variables": {
      "YAML variables": -1
    },
    "yaml-wildcard-keys": {
      "YAML wildcard keys": -1
    }
  },
  "contributing": {
    "": {
      "Contributing to Gramex": -1
    },
    "push-docs-and-coverage-tests": {
      "Push docs and coverage tests": -1
    },
    "push-to-pypi": {
      "Push to pypi": -1
    },
    "releasing-gramex": {
      "Releasing Gramex": -1
    },
    "set-up-gramex": {
      "Set up Gramex": -1
    },
    "update-gramex": {
      "Update Gramex": -1
    }
  },
  "dashboard": {
    "": {
      "Templatize visualization dashboard creation": -1
    }
  },
  "datahandler": {
    "": {
      "DataHandler connects to data": -1
    },
    "database-edits": {
      "Database edits": -1
    },
    "datahandler-defaults": {
      "DataHandler defaults": -1
    },
    "datahandler-delete": {
      "DataHandler delete": -1
    },
    "datahandler-formats": {
      "DataHandler formats": -1
    },
    "datahandler-insert": {
      "DataHandler insert": -1
    },
    "datahandler-on-databases": {
      "DataHandler on databases": -1
    },
    "datahandler-on-files": {
      "DataHandler on files": -1
    },
    "datahandler-on-sqlite3": {
      "DataHandler on sqlite3": -1
    },
    "datahandler-templates": {
      "DataHandler templates": -1
    },
    "datahandler-update": {
      "DataHandler update": -1
    },
    "datahandler-usage": {
      "DataHandler usage": -1
    }
  },
  "debug": {
    "": {
      "Debug Gramex": -1
    },
    "browser-on-startup": {
      "Browser on startup": -1
    },
    "debug-mode": {
      "Debug mode": -1
    },
    "line-profile": {
      "Line profile": -1
    },
    "print-statements": {
      "Print statements": -1
    },
    "profiling": {
      "Profiling": -1
    },
    "python-debugger": {
      "Python debugger": -1
    },
    "reloading": {
      "Reloading": -1
    },
    "timer": {
      "Timer": -1
    },
    "tracing": {
      "Tracing": -1
    }
  },
  "deploy": {
    "": {
      "Deployment patterns": -1
    },
    "403-forbidden": {
      "403 Forbidden": -1
    },
    "404-not-found": {
      "404 Not Found": -1
    },
    "apache-load-balancing": {
      "Apache Load Balancing": -1
    },
    "apache-reverse-proxy": {
      "Apache reverse proxy": -1
    },
    "cannot-load-function": {
      "Cannot load function": -1
    },
    "cannot-start-capture": {
      "Cannot start Capture": -1
    },
    "common-errors": {
      "Common errors": -1
    },
    "deployment-checklist": {
      "Deployment checklist": -1
    },
    "deployment-variables": {
      "Deployment variables": -1
    },
    "duplicate-key": {
      "Duplicate key": -1
    },
    "goaccess-output": {
      "GoAccess Output": -1
    },
    "handler-name-conflict": {
      "Handler name conflict": -1
    },
    "https-server": {
      "HTTPS Server": -1
    },
    "import-conflict": {
      "Import conflict": -1
    },
    "linux-scheduled-tasks": {
      "Linux scheduled tasks": -1
    },
    "linux-service": {
      "Linux service": -1
    },
    "log-file-order": {
      "Log file order": -1
    },
    "make-sure-you-have-a-listen-80-in-your-configuration": {
      "Make sure you have a \"Listen 80\" in your configuration.": -1
    },
    "missing-dependency": {
      "Missing dependency": -1
    },
    "nginx-log-analyzer": {
      "nginx log analyzer": -1
    },
    "nginx-reverse-proxy": {
      "nginx reverse proxy": -1
    },
    "nginxconf": {
      "nginx.conf": -1
    },
    "other-common-errors": {
      "Other common errors": -1
    },
    "port-8001-is-busy": {
      "Port 8001 is busy": -1
    },
    "proxy-servers": {
      "Proxy servers": -1
    },
    "python-file-conflict": {
      "Python file conflict": -1
    },
    "relative-url-mapping": {
      "Relative URL mapping": -1
    },
    "required-modules": {
      "Required modules": -1
    },
    "security": {
      "Security": -1
    },
    "shared-deployment": {
      "Shared deployment": -1
    },
    "using-relative-urls": {
      "Using relative URLs": -1
    },
    "using-yamlpath": {
      "Using YAMLPATH": -1
    },
    "windows-administration": {
      "Windows administration": -1
    },
    "windows-scheduled-tasks": {
      "Windows scheduled tasks": -1
    },
    "windows-service": {
      "Windows Service": -1
    },
    "works-locally-but-not-on-server": {
      "Works locally but not on server": -1
    }
  },
  "email": {
    "": {
      "Send email": -1
    },
    "automated-email-alerts": {
      "Automated email alerts": -1
    },
    "command-line-emails": {
      "Command-line emails": -1
    },
    "email-attachments": {
      "Email attachments": -1
    },
    "from-gramexservices-import-smtpmailer": {
      "from gramex.services import SMTPMailer": -1
    },
    "html-email": {
      "HTML email": -1
    },
    "mailer-smtpmailertypegmail-emailgramexguidegmailcom-password": {
      "mailer = SMTPMailer(type='gmail', email='gramex.guide@gmail.com', password='...')": -1
    },
    "or-to-construct-the-smtpmailer-when-using-gramex-as-a-library-use": {
      "Or, to construct the SMTPMailer when using Gramex as a library, use:": -1
    },
    "send-email": {
      "Send email": -1
    },
    "test-email-service": {
      "Test email service": -1
    }
  },
  "exercises": {
    "": {
      "Gramex exercises": -1
    }
  },
  "facebookgraphhandler": {
    "": {
      "FacebookGraphHandler": -1
    },
    "facebook-persist": {
      "Facebook Persist": -1
    }
  },
  "filehandler": {
    "": {
      "FileHandler renders files": -1
    },
    "caching": {
      "Caching": -1
    },
    "directory-listing": {
      "Directory listing": -1
    },
    "file-concatenation": {
      "File concatenation": -1
    },
    "file-patterns": {
      "File patterns": -1
    },
    "filehandler-http-methods": {
      "FileHandler HTTP methods": -1
    },
    "how-xsrf-works": {
      "How XSRF works": -1
    },
    "ignore-files": {
      "Ignore files": -1
    },
    "mime-types": {
      "MIME types": -1
    },
    "redirecting-files": {
      "Redirecting files": -1
    },
    "templates": {
      "Templates": -1
    },
    "transforming-content": {
      "Transforming content": -1
    },
    "xsrf": {
      "XSRF": -1
    }
  },
  "filterhandler": {
    "": {
      "FilterHandler": -1
    },
    "examples": {
      "Examples": -1
    },
    "filterhandler-formats": {
      "FilterHandler Formats": -1
    }
  },
  "formhandler": {
    "": {
      "FormHandler connects to data": -1
    },
    "categorical-plots": {
      "Categorical plots": -1
    },
    "custom-http-headers": {
      "Custom HTTP Headers": -1
    },
    "formhandler-charts": {
      "FormHandler charts": -1
    },
    "formhandler-defaults": {
      "FormHandler defaults": -1
    },
    "formhandler-delete": {
      "FormHandler DELETE": -1
    },
    "formhandler-directory-listing": {
      "FormHandler directory listing": -1
    },
    "formhandler-downloads": {
      "FormHandler downloads": -1
    },
    "formhandler-edits": {
      "FormHandler edits": -1
    },
    "formhandler-filters": {
      "FormHandler filters": -1
    },
    "formhandler-formats": {
      "FormHandler formats": -1
    },
    "formhandler-forms": {
      "FormHandler forms": -1
    },
    "formhandler-functions": {
      "FormHandler functions": -1
    },
    "formhandler-groupby": {
      "FormHandler groupby": -1
    },
    "formhandler-json-body": {
      "FormHandler JSON body": -1
    },
    "formhandler-metadata": {
      "FormHandler metadata": -1
    },
    "formhandler-modify": {
      "FormHandler modify": -1
    },
    "formhandler-multiple-datasets": {
      "FormHandler multiple datasets": -1
    },
    "formhandler-parameters": {
      "FormHandler parameters": -1
    },
    "formhandler-post": {
      "FormHandler POST": -1
    },
    "formhandler-prepare": {
      "FormHandler prepare": -1
    },
    "formhandler-put": {
      "FormHandler PUT": -1
    },
    "formhandler-query": {
      "FormHandler query": -1
    },
    "formhandler-queryfile": {
      "FormHandler queryfile": -1
    },
    "formhandler-queryfunction": {
      "FormHandler queryfunction": -1
    },
    "formhandler-tables": {
      "FormHandler tables": -1
    },
    "formhandler-templates": {
      "FormHandler templates": -1
    },
    "formhandler-vega-charts": {
      "FormHandler Vega charts": -1
    },
    "grid-plots": {
      "Grid plots": -1
    },
    "matrix-plots": {
      "Matrix plots": -1
    },
    "preventing-sql-injection": {
      "Preventing SQL injection": -1
    },
    "regression-plots": {
      "Regression plots": -1
    }
  },
  "functionhandler": {
    "": {
      "FunctionHandler runs Python code": -1
    },
    "asynchronous-functions": {
      "Asynchronous functions": -1
    },
    "function-arguments": {
      "Function arguments": -1
    },
    "function-methods": {
      "Function methods": -1
    },
    "parse-url-arguments": {
      "Parse URL arguments": -1
    },
    "path-arguments": {
      "Path arguments": -1
    },
    "streaming-output": {
      "Streaming output": -1
    }
  },
  "groupmeans": {
    "": {
      "GroupMeans analyzes root causes": -1
    },
    "exploratory-analysis": {
      "Exploratory analysis": -1
    },
    "root-cause-analysis": {
      "Root cause analysis": -1
    },
    "upload-your-data": {
      "Upload your data": -1
    }
  },
  "handlers": {
    "": {
      "Writing handlers": -1
    },
    "basehandler-attributes": {
      "BaseHandler Attributes": -1
    },
    "initialisation": {
      "Initialisation": -1
    },
    "tornado-handler-attributes": {
      "Tornado handler attributes": -1
    }
  },
  "init": {
    "": {
      "Gramex init": -1
    },
    "gramex-init-tracker": {
      "Gramex init tracker": -1
    },
    "gramex-init-usage": {
      "Gramex init usage": -1
    }
  },
  "install": {
    "": {
      "Install Gramex": -1
    },
    "alternate-installations": {
      "Alternate installations": -1
    },
    "docker-install": {
      "Docker install": -1
    },
    "install-a-local-version-for-gramex-development": {
      "Install a local version for Gramex development": -1
    },
    "install-a-specific-branch-or-tag-from-the-gramex-source-code": {
      "Install a specific branch or tag from the Gramex source code": -1
    },
    "install-a-specific-version-of-gramex": {
      "Install a specific version of Gramex": -1
    },
    "installation": {
      "Installation": -1
    },
    "offline-docker-install": {
      "Offline Docker Install": -1
    },
    "offline-install": {
      "Offline install": -1
    },
    "other-useful-commands": {
      "Other useful commands": -1
    },
    "run-bash-inside-the-container": {
      "Run bash inside the container": -1
    },
    "run-gramex-on-port-9988": {
      "Run Gramex on port 9988": -1
    },
    "to-re-connect-to-the-instance": {
      "To re-connect to the instance:": -1
    },
    "troubleshooting": {
      "Troubleshooting": -1
    },
    "uninstall-gramex": {
      "Uninstall Gramex": -1
    }
  },
  "jsonhandler": {
    "": {
      "JSONHandler writes JSON data": -1
    },
    "delete-remove-data": {
      "DELETE - remove data": -1
    },
    "get-read-data": {
      "GET - read data": -1
    },
    "method-override": {
      "Method override": -1
    },
    "patch-update-data": {
      "PATCH - update data": -1
    },
    "post-add-data": {
      "POST - add data": -1
    },
    "put-write-data": {
      "PUT - write data": -1
    }
  },
  "license": {
    "": {
      "Gramex license": -1
    }
  },
  "linkcheck": {
    "": {
      "Guide self test": -1
    }
  },
  "logviewer": {
    "": {
      "Log viewer": -1
    },
    "add-3rd-party-data": {
      "Add 3rd-party data": -1
    },
    "add-custom-visuals": {
      "Add custom visuals": -1
    },
    "logviewer-usage": {
      "Logviewer usage": -1
    },
    "logviewerdb": {
      "logviewer.db": -1
    },
    "session-calculations": {
      "Session Calculations": -1
    },
    "using-variables": {
      "Using Variables": -1
    }
  },
  "modelhandler": {
    "": {
      "ModelHandler provides ML APIs": -1
    },
    "api-reference": {
      "API Reference": -1
    },
    "classifier": {
      "Classifier": -1
    },
    "construct-the-model": {
      "Construct the model": -1
    },
    "example-usage": {
      "Example Usage": -1
    },
    "expose-endpoints": {
      "Expose Endpoints": -1
    },
    "groupmeans": {
      "GroupMeans": -1
    },
    "links-to-machine-learning-and-analytics-usecases": {
      "Links to Machine Learning and Analytics Usecases": -1
    },
    "read-the-data-into-a-pandas-dataframe": {
      "Read the data into a Pandas DataFrame": -1
    },
    "result-should-be-setosa": {
      "result should be ['setosa']": -1
    }
  },
  "node": {
    "": {
      "Run JavaScript": -1
    },
    "javascript-conversion": {
      "JavaScript conversion": -1
    },
    "run-javascript": {
      "Run JavaScript": -1
    }
  },
  "old": {
    "": {
      "Gramex Old Release Notes": -1
    },
    "v100-2015-09-08": {
      "v1.0.0 (2015-09-08)": -1
    },
    "v101-2015-09-09": {
      "v1.0.1 (2015-09-09)": -1
    },
    "v102-2015-10-11": {
      "v1.0.2 (2015-10-11)": -1
    },
    "v103-2016-01-18": {
      "v1.0.3 (2016-01-18)": -1
    },
    "v104-2016-03-30": {
      "v1.0.4 (2016-03-30)": -1
    },
    "v105-2016-04-15": {
      "v1.0.5 (2016-04-15)": -1
    },
    "v106-2016-05-01": {
      "v1.0.6 (2016-05-01)": -1
    },
    "v107-2016-05-15": {
      "v1.0.7 (2016-05-15)": -1
    },
    "v108-2016-06-01": {
      "v1.0.8 (2016-06-01)": -1
    },
    "v109-2016-06-15": {
      "v1.0.9 (2016-06-15)": -1
    },
    "v110-2016-07-01": {
      "v1.10 (2016-07-01)": -1
    },
    "v111-2016-07-15": {
      "v1.11 (2016-07-15)": -1
    },
    "v112-2016-07-21": {
      "v1.12 (2016-07-21)": -1
    },
    "v113-2016-08-01": {
      "v1.13 (2016-08-01)": -1
    },
    "v114-2016-08-11": {
      "v1.14 (2016-08-11)": -1
    },
    "v115-2016-08-21": {
      "v1.15 (2016-08-21)": -1
    },
    "v116-2016-10-16": {
      "v1.16 (2016-10-16)": -1
    },
    "v117-2017-01-29": {
      "v1.17 (2017-01-29)": -1
    },
    "v1171-2017-04-23": {
      "v1.17.1 (2017-04-23)": -1
    },
    "v1180-2017-06-29": {
      "v1.18.0 (2017-06-29)": -1
    },
    "v1190-2017-07-09": {
      "v1.19.0 (2017-07-09)": -1
    },
    "v1200-2017-07-31": {
      "v1.20.0 (2017-07-31)": -1
    },
    "v1210-2017-08-29": {
      "v1.21.0 (2017-08-29)": -1
    },
    "v1220-2017-09-28": {
      "v1.22.0 (2017-09-28)": -1
    },
    "v1230-2017-10-31": {
      "v1.23.0 (2017-10-31)": -1
    },
    "v1231-2017-11-13": {
      "v1.23.1 (2017-11-13)": -1
    },
    "v1240-2017-11-30": {
      "v1.24.0 (2017-11-30)": -1
    },
    "v1250-2017-12-15": {
      "v1.25.0 (2017-12-15)": -1
    },
    "v1260-2017-12-31": {
      "v1.26.0 (2017-12-31)": -1
    },
    "v1270-2018-01-20": {
      "v1.27.0 (2018-01-20)": -1
    },
    "v1280-2018-01-31": {
      "v1.28.0 (2018-01-31)": -1
    },
    "v1290-2018-02-15": {
      "v1.29.0 (2018-02-15)": -1
    }
  },
  "pptxhandler": {
    "": {
      "PPTXHandler generates PPTX": -1
    },
    "bullet": {
      "Bullet": -1
    },
    "calendarmap": {
      "Calendarmap": -1
    },
    "chart": {
      "Chart": -1
    },
    "commands": {
      "Commands": -1
    },
    "css": {
      "CSS": -1
    },
    "custom-charts": {
      "Custom charts": -1
    },
    "data": {
      "Data": -1
    },
    "deprecated-commands": {
      "Deprecated commands": -1
    },
    "expressions": {
      "Expressions": -1
    },
    "groups": {
      "Groups": -1
    },
    "heatgrid": {
      "Heatgrid": -1
    },
    "image": {
      "Image": -1
    },
    "native-charts": {
      "Native charts": -1
    },
    "pptgen": {
      "PPTGen": -1
    },
    "pptgen-command-line": {
      "PPTGen Command Line": -1
    },
    "pptgen-configuration": {
      "PPTGen Configuration": -1
    },
    "pptgen-library": {
      "PPTGen Library": -1
    },
    "pptx-url-arguments": {
      "PPTX URL arguments": -1
    },
    "register-register-a-new-command-to-pptgen": {
      "Register: Register a new command to PPTGen": -1
    },
    "replace": {
      "Replace": -1
    },
    "replicate": {
      "Replicate": -1
    },
    "rules": {
      "Rules": -1
    },
    "sankey": {
      "Sankey": -1
    },
    "shapes": {
      "Shapes": -1
    },
    "slides": {
      "Slides": -1
    },
    "stack": {
      "Stack": -1
    },
    "table": {
      "Table": -1
    },
    "templates": {
      "Templates": -1
    },
    "text": {
      "Text": -1
    },
    "treemap": {
      "Treemap": -1
    }
  },
  "privacy": {
    "": {
      "Privacy policy": -1
    }
  },
  "processhandler": {
    "": {
      "ProcessHandler runs programs": -1
    },
    "processhandler-redirection": {
      "ProcessHandler redirection": -1
    }
  },
  "proxyhandler": {
    "": {
      "ProxyHandler proxies APIs": -1
    },
    "facebook-proxyhandler": {
      "Facebook ProxyHandler": -1
    },
    "google-cloud-nlp": {
      "Google Cloud NLP": -1
    },
    "google-proxyhandler": {
      "Google ProxyHandler": -1
    },
    "google-search": {
      "Google Search": -1
    },
    "google-services": {
      "Google Services": -1
    },
    "google-translate": {
      "Google Translate": -1
    },
    "proxyhandler-configuration": {
      "ProxyHandler Configuration": -1
    },
    "reverse-proxyhandler": {
      "Reverse ProxyHandler": -1
    }
  },
  "queryhandler": {
    "": {
      "QueryHandler runs SQL queries": -1
    },
    "multiple-sql-queries": {
      "Multiple SQL queries": -1
    },
    "queryhandler-post": {
      "QueryHandler POST": -1
    },
    "queryhandler-templates": {
      "QueryHandler templates": -1
    }
  },
  "quickstart": {
    "": {
      "Quickstart Guide": -1
    },
    "authentication": {
      "Authentication": -1
    },
    "backend-data-transformation": {
      "Backend Data Transformation": -1
    },
    "business-case": {
      "Business Case": -1
    },
    "charting": {
      "Charting": -1
    },
    "configuration-and-handlers": {
      "Configuration and Handlers": -1
    },
    "editorconfig": {
      ".editorconfig": -1
    },
    "eslintrcjs": {
      ".eslintrc.js": -1
    },
    "flake8": {
      ".flake8": -1
    },
    "folder-structure-of-a-simple-gramex-dashboard": {
      "Folder Structure of a Simple Gramex Dashboard": -1
    },
    "g1-mapviewer": {
      "G1 Mapviewer": -1
    },
    "gitignore": {
      ".gitignore": -1
    },
    "gitlab-ciyml": {
      ".gitlab-ci.yml": -1
    },
    "gramex-init": {
      "Gramex Init": -1
    },
    "gramex-installation-on-windowslinux": {
      "Gramex Installation on Windows/Linux": -1
    },
    "gramexyaml": {
      "gramex.yaml": -1
    },
    "htmllintrc": {
      ".htmllintrc": -1
    },
    "indexhtml": {
      "index.html": -1
    },
    "installing-gramex": {
      "Installing Gramex": -1
    },
    "interactivitydrilldowns-and-filtering": {
      "Interactivity/Drilldowns and Filtering": -1
    },
    "introduction": {
      "Introduction": -1
    },
    "readmemd": {
      "README.md": -1
    },
    "scaffolding": {
      "Scaffolding": -1
    },
    "screenshots-via-capturehandler": {
      "Screenshots via CaptureHandler": -1
    }
  },
  "r": {
    "": {
      "R": -1
    },
    "etc": {
      "... etc": -1
    },
    "loads-datacsv-from-same-directory-as-the-r-script": {
      "Loads data.csv from same directory as the R script": -1
    },
    "r-arguments": {
      "R arguments": -1
    },
    "r-async": {
      "R async": -1
    },
    "r-commands": {
      "R commands": -1
    },
    "r-packages": {
      "R packages": -1
    },
    "r-plots": {
      "R plots": -1
    },
    "r-scripts": {
      "R scripts": -1
    },
    "rest-of-your-script-can-use-the-packages-above": {
      "Rest of your script can use the packages above.": -1
    },
    "rmarkdown": {
      "RMarkdown": -1
    }
  },
  "release": {
    "": {
      "Gramex release notes": -1
    }
  },
  "scheduler": {
    "": {
      "Schedule tasks": -1
    },
    "schedule-examples": {
      "Schedule examples": -1
    },
    "schedule-timing": {
      "Schedule timing": -1
    },
    "scheduler-api": {
      "Scheduler API": -1
    }
  },
  "search": {
    "": {
      "Index of topics": -1
    }
  },
  "server": {
    "": {
      "Gramex is a web server": -1
    },
    "creating-gramex-apps": {
      "Creating Gramex apps": -1
    },
    "gramex-0x-changes": {
      "Gramex 0.x changes": -1
    }
  },
  "sms": {
    "": {
      "Send SMS": -1
    },
    "amazon-sns": {
      "Amazon SNS": -1
    },
    "exotel": {
      "Exotel": -1
    },
    "from-gramexservices-import-amazonsns": {
      "from gramex.services import AmazonSNS": -1
    },
    "notifier-amazonsnsaws_access_key_id-aws_access_secret_key-region_name": {
      "notifier = AmazonSNS(aws_access_key_id, aws_access_secret_key, region_name)": -1
    },
    "or-to-construct-the-notifier-when-using-gramex-as-a-library-use": {
      "Or, to construct the Notifier when using Gramex as a library, use:": -1
    },
    "send-sms": {
      "Send SMS": -1
    },
    "twilio": {
      "Twilio": -1
    }
  },
  "test": {
    "": {
      "Automate tests": -1
    }
  },
  "tips": {
    "": {
      "Tips & Tricks": -1
    },
    "gramex-tips": {
      "Gramex Tips": -1
    },
    "reuse-code": {
      "Reuse code": -1
    }
  },
  "tutorials": {
    "": {
      "Tutorials": -1
    }
  },
  "twitterresthandler": {
    "": {
      "TwitterRESTHandler": -1
    },
    "parallel-ajax-requests": {
      "Parallel AJAX requests": -1
    },
    "twitter-followers": {
      "Twitter followers": -1
    },
    "twitter-get-requests": {
      "Twitter GET requests": -1
    },
    "twitter-oauth": {
      "Twitter OAuth": -1
    },
    "twitter-paths": {
      "Twitter Paths": -1
    },
    "twitter-persist": {
      "Twitter Persist": -1
    },
    "twitter-pre-auth": {
      "Twitter Pre-auth": -1
    },
    "twitter-search": {
      "Twitter search": -1
    },
    "twitter-streaming": {
      "Twitter streaming": -1
    },
    "twitter-transforms": {
      "Twitter transforms": -1
    }
  },
  "uploadhandler": {
    "": {
      "UploadHandler uploads files": -1
    },
    "ajax-uploads": {
      "AJAX uploads": -1
    },
    "overwriting-uploads": {
      "Overwriting uploads": -1
    },
    "process-uploads": {
      "Process uploads": -1
    },
    "saving-uploads": {
      "Saving uploads": -1
    },
    "upload-arguments": {
      "Upload arguments": -1
    },
    "upload-deletion": {
      "Upload deletion": -1
    },
    "upload-listing": {
      "Upload listing": -1
    }
  },
  "watch": {
    "": {
      "Watch files": -1
    },
    "inotify-limit": {
      "inotify limit": -1
    },
    "watching-files": {
      "Watching files": -1
    }
  },
  "websockethandler": {
    "": {
      "WebSocketHandler": -1
    },
    "websockets-via-nginx": {
      "Websockets via nginx": -1
    }
  }
}