Full Code of ricodigo/shapado for AI

master 9e1bcf31ae1b cached
2419 files
5.8 MB
1.7M tokens
1966 symbols
1 requests
Download .txt
Showing preview only (6,992K chars total). Download the full file or copy to clipboard to get everything.
Repository: ricodigo/shapado
Branch: master
Commit: 9e1bcf31ae1b
Files: 2419
Total size: 5.8 MB

Directory structure:
gitextract_njqf0rgl/

├── .gitignore
├── .gitmodules
├── .mailmap
├── .rspec
├── AUTHORS
├── COPYING
├── Gemfile
├── INSTALL_ON_PRODUCTION
├── README
├── Rakefile
├── Shapado.prj
├── Shapado.ubuntu.fra.pui
├── UPGRADE
├── VERSION
├── app/
│   ├── assets/
│   │   ├── images/
│   │   │   └── src/
│   │   │       ├── point1.xcf
│   │   │       ├── point2.xcf
│   │   │       ├── point3.xcf
│   │   │       └── point4.xcf
│   │   ├── javascripts/
│   │   │   ├── app/
│   │   │   │   ├── initializers/
│   │   │   │   │   ├── assets.js
│   │   │   │   │   ├── init_dev.js
│   │   │   │   │   ├── init_modernizr.js
│   │   │   │   │   ├── retag.js
│   │   │   │   │   ├── search.js
│   │   │   │   │   ├── shapado_toolbar.js
│   │   │   │   │   └── single/
│   │   │   │   │       └── question.js
│   │   │   │   ├── main.js
│   │   │   │   └── modules/
│   │   │   │       ├── activities.js
│   │   │   │       ├── answers.js
│   │   │   │       ├── app_config.js
│   │   │   │       ├── authentication.js
│   │   │   │       ├── comments.js
│   │   │   │       ├── editor.js
│   │   │   │       ├── effects.js
│   │   │   │       ├── form.js
│   │   │   │       ├── geo.js
│   │   │   │       ├── groups.js
│   │   │   │       ├── invitations.js
│   │   │   │       ├── jqmath.js
│   │   │   │       ├── layout_editor.js
│   │   │   │       ├── loader.js
│   │   │   │       ├── local_storage.js
│   │   │   │       ├── members.js
│   │   │   │       ├── messages.js
│   │   │   │       ├── networks.js
│   │   │   │       ├── notifier.js
│   │   │   │       ├── pages.js
│   │   │   │       ├── plans.js
│   │   │   │       ├── questions.js
│   │   │   │       ├── rewards.js
│   │   │   │       ├── searches.js
│   │   │   │       ├── shapado_ui.js
│   │   │   │       ├── tags.js
│   │   │   │       ├── themes.js
│   │   │   │       ├── ui.js
│   │   │   │       ├── updater.js
│   │   │   │       ├── users.js
│   │   │   │       ├── utils.js
│   │   │   │       ├── votes.js
│   │   │   │       ├── websocket.js
│   │   │   │       └── widgets.js
│   │   │   ├── application-init.js
│   │   │   ├── application.js
│   │   │   ├── codemirror.js
│   │   │   ├── facebook_app/
│   │   │   │   ├── facebox/
│   │   │   │   │   ├── facebox.css
│   │   │   │   │   └── facebox.js
│   │   │   │   └── init.js
│   │   │   ├── i18n/
│   │   │   │   ├── af.js
│   │   │   │   ├── be-Tarask.js
│   │   │   │   ├── br.js
│   │   │   │   ├── ca.js
│   │   │   │   ├── da.js
│   │   │   │   ├── de.js
│   │   │   │   ├── el.js
│   │   │   │   ├── en.js
│   │   │   │   ├── eo.js
│   │   │   │   ├── es-419.js
│   │   │   │   ├── es.js
│   │   │   │   ├── fa.js
│   │   │   │   ├── fi.js
│   │   │   │   ├── fr.js
│   │   │   │   ├── fur.js
│   │   │   │   ├── gl.js
│   │   │   │   ├── he.js
│   │   │   │   ├── hu.js
│   │   │   │   ├── ia.js
│   │   │   │   ├── id.js
│   │   │   │   ├── ig.js
│   │   │   │   ├── it.js
│   │   │   │   ├── ja.js
│   │   │   │   ├── ksh.js
│   │   │   │   ├── lb.js
│   │   │   │   ├── mk.js
│   │   │   │   ├── ms.js
│   │   │   │   ├── nb.js
│   │   │   │   ├── nl.js
│   │   │   │   ├── pl.js
│   │   │   │   ├── pms.js
│   │   │   │   ├── pt-BR.js
│   │   │   │   ├── pt-PT.js
│   │   │   │   ├── qqq.js
│   │   │   │   ├── ru.js
│   │   │   │   ├── shi.js
│   │   │   │   ├── si.js
│   │   │   │   ├── sr-Latn.js
│   │   │   │   ├── sr.js
│   │   │   │   ├── sv.js
│   │   │   │   ├── te.js
│   │   │   │   ├── tl.js
│   │   │   │   ├── uk.js
│   │   │   │   ├── zh-CN.js
│   │   │   │   ├── zh-HANT.js
│   │   │   │   └── zh-TW.js
│   │   │   ├── magent_web.js
│   │   │   ├── mobile.js
│   │   │   ├── payments/
│   │   │   │   ├── application.js
│   │   │   │   └── payments.js
│   │   │   ├── shapadocom.js
│   │   │   └── vendor/
│   │   │       ├── ajax-chosen.js
│   │   │       ├── highlight/
│   │   │       │   └── prettify.js
│   │   │       ├── jHtmlArea.js
│   │   │       ├── jquery-1.6.4.js
│   │   │       ├── jquery.autovideo.js
│   │   │       ├── jquery.cookie.js
│   │   │       ├── jquery.droppy.js
│   │   │       ├── jquery.notifyBar.js
│   │   │       ├── jquery.pjax.js
│   │   │       ├── jquery.smart-poll.js
│   │   │       ├── jquery.textarea.js
│   │   │       ├── mathscribe/
│   │   │       │   ├── jqmath-0.1.1.css
│   │   │       │   ├── jqmath-0.1.1.js
│   │   │       │   └── jscurry-0.1.js
│   │   │       ├── polyfills/
│   │   │       │   ├── geolocation.js
│   │   │       │   └── json2.js
│   │   │       ├── showdown.js
│   │   │       └── web-socket-js/
│   │   │           ├── FABridge.js
│   │   │           ├── WebSocketMain.swf
│   │   │           ├── swfobject.js
│   │   │           └── web_socket.js
│   │   └── stylesheets/
│   │       ├── application.css
│   │       ├── codemirror.css
│   │       ├── components/
│   │       │   ├── announcements.css.sass
│   │       │   ├── badges.css.sass
│   │       │   ├── devise.css.sass
│   │       │   ├── doc.css.sass
│   │       │   ├── groups.css.sass
│   │       │   ├── history.css.sass
│   │       │   ├── invitations.css.sass
│   │       │   ├── invoices.css.sass
│   │       │   ├── manage.css.sass
│   │       │   ├── members.css.sass
│   │       │   ├── pages.css.sass
│   │       │   ├── plans.css.sass
│   │       │   ├── questions.css.sass
│   │       │   ├── themes.css.sass
│   │       │   ├── users.css.sass
│   │       │   └── widgets.css.sass
│   │       ├── general.css.sass
│   │       ├── helper/
│   │       │   ├── forms.css.sass
│   │       │   ├── items/
│   │       │   │   ├── comments.css.sass
│   │       │   │   ├── editors.css.sass
│   │       │   │   ├── markdown.css.sass
│   │       │   │   ├── menubar.css.sass
│   │       │   │   ├── tags.css.sass
│   │       │   │   └── widgets.css.sass
│   │       │   ├── items.css.sass
│   │       │   └── notifications.css.sass
│   │       ├── mobile.css.scss
│   │       ├── setup.sass
│   │       ├── shapadocom.css
│   │       └── structure/
│   │           ├── furniture.css.sass
│   │           ├── general.css.sass
│   │           └── layout.css.sass
│   ├── controllers/
│   │   ├── activities_controller.rb
│   │   ├── admin/
│   │   │   ├── manage_controller.rb
│   │   │   └── moderate_controller.rb
│   │   ├── announcements_controller.rb
│   │   ├── answers_controller.rb
│   │   ├── application_controller.rb
│   │   ├── badges_controller.rb
│   │   ├── close_requests_controller.rb
│   │   ├── comments_controller.rb
│   │   ├── constrains_configs_controller.rb
│   │   ├── doc_controller.rb
│   │   ├── facebook_controller.rb
│   │   ├── flags_controller.rb
│   │   ├── groups_controller.rb
│   │   ├── imports_controller.rb
│   │   ├── invitations_controller.rb
│   │   ├── invoices_controller.rb
│   │   ├── members_controller.rb
│   │   ├── mobile_controller.rb
│   │   ├── moderate/
│   │   │   ├── answers_controller.rb
│   │   │   ├── questions_controller.rb
│   │   │   └── users_controller.rb
│   │   ├── open_requests_controller.rb
│   │   ├── pages_controller.rb
│   │   ├── public_errors_controller.rb
│   │   ├── questions_controller.rb
│   │   ├── reward_controller.rb
│   │   ├── searches_controller.rb
│   │   ├── tags_controller.rb
│   │   ├── themes_controller.rb
│   │   ├── users_controller.rb
│   │   ├── votes_controller.rb
│   │   ├── welcome_controller.rb
│   │   └── widgets_controller.rb
│   ├── helpers/
│   │   ├── activities_helper.rb
│   │   ├── announcements_helper.rb
│   │   ├── answers_helper.rb
│   │   ├── application_helper.rb
│   │   ├── badges_helper.rb
│   │   ├── flags_helper.rb
│   │   ├── groups_helper.rb
│   │   ├── layout_helper.rb
│   │   ├── mobile_helper.rb
│   │   ├── pages_helper.rb
│   │   ├── questions_helper.rb
│   │   ├── searches_helper.rb
│   │   ├── sessions_helper.rb
│   │   ├── themes_helper.rb
│   │   ├── users_helper.rb
│   │   ├── votes_helper.rb
│   │   └── welcome_helper.rb
│   ├── middlewares/
│   │   └── dynamic_domain.rb
│   ├── models/
│   │   ├── activity.rb
│   │   ├── announcement.rb
│   │   ├── answer.rb
│   │   ├── badge.rb
│   │   ├── close_request.rb
│   │   ├── comment.rb
│   │   ├── constrains_config.rb
│   │   ├── custom_html.rb
│   │   ├── draft.rb
│   │   ├── export.rb
│   │   ├── external_friends_list.rb
│   │   ├── flag.rb
│   │   ├── follow_up.rb
│   │   ├── friend_list.rb
│   │   ├── geo_position.rb
│   │   ├── group.rb
│   │   ├── group_notification_config.rb
│   │   ├── group_stat.rb
│   │   ├── invitation.rb
│   │   ├── invoices/
│   │   │   ├── credit_card.rb
│   │   │   ├── invoice.rb
│   │   │   └── shapado_version.rb
│   │   ├── membership.rb
│   │   ├── notification_config.rb
│   │   ├── notifier.rb
│   │   ├── open_request.rb
│   │   ├── page.rb
│   │   ├── question.rb
│   │   ├── read_list.rb
│   │   ├── report.rb
│   │   ├── reputation_stat.rb
│   │   ├── reward.rb
│   │   ├── search.rb
│   │   ├── share.rb
│   │   ├── tag.rb
│   │   ├── tag_list.rb
│   │   ├── theme.rb
│   │   ├── user.rb
│   │   ├── user_stat.rb
│   │   ├── views_count.rb
│   │   ├── widget_list.rb
│   │   └── widgets/
│   │       ├── about_widget.rb
│   │       ├── adsense_widget.rb
│   │       ├── ask_question_widget.rb
│   │       ├── badges_widget.rb
│   │       ├── contributors_widget.rb
│   │       ├── current_tags_widget.rb
│   │       ├── custom_html_widget.rb
│   │       ├── group_networks_widget.rb
│   │       ├── groups_widget.rb
│   │       ├── pages_widget.rb
│   │       ├── question_badges_widget.rb
│   │       ├── related_questions_widget.rb
│   │       ├── share_widget.rb
│   │       ├── suggestions_widget.rb
│   │       ├── tag_cloud_widget.rb
│   │       ├── top_groups_widget.rb
│   │       ├── top_users_widget.rb
│   │       ├── users_widget.rb
│   │       └── widget.rb
│   ├── mustache/
│   │   ├── activity_wrapper.rb
│   │   ├── answer_form.rb
│   │   ├── answer_wrapper.rb
│   │   ├── ask_form.rb
│   │   ├── badge_wrapper.rb
│   │   ├── collection_wrapper.rb
│   │   ├── comment_wrapper.rb
│   │   ├── layouts/
│   │   │   └── theme_layout_view.rb
│   │   ├── model_wrapper.rb
│   │   ├── question_wrapper.rb
│   │   ├── questions/
│   │   │   ├── index_view.rb
│   │   │   └── show_view.rb
│   │   ├── tag_wrapper.rb
│   │   ├── theme_view_base.rb
│   │   └── user_wrapper.rb
│   └── views/
│       ├── activities/
│       │   ├── _activity.html.haml
│       │   └── index.html.haml
│       ├── admin/
│       │   ├── manage/
│       │   │   ├── _top_admin.html.haml
│       │   │   ├── access.html.haml
│       │   │   ├── actions.html.haml
│       │   │   ├── appearance.html.haml
│       │   │   ├── close_group.html.haml
│       │   │   ├── content.html.haml
│       │   │   ├── dashboard.html.haml
│       │   │   ├── edit_card.html.haml
│       │   │   ├── invitations.html.haml
│       │   │   ├── properties/
│       │   │   │   ├── _ask_from_twitter.html.haml
│       │   │   │   ├── _constrains.html.haml
│       │   │   │   ├── _domain.html.haml
│       │   │   │   ├── _facebook_app.html.haml
│       │   │   │   ├── _general.html.haml
│       │   │   │   ├── _invitations.html.haml
│       │   │   │   ├── _invite.html.haml
│       │   │   │   ├── _post_to_twitter.html.haml
│       │   │   │   ├── _rewards.html.haml
│       │   │   │   ├── _share.html.haml
│       │   │   │   ├── _subtabs.html.haml
│       │   │   │   ├── _tag_your_tweets.html.haml
│       │   │   │   └── _twitter_account.html.haml
│       │   │   ├── properties.html.haml
│       │   │   ├── social.html.haml
│       │   │   └── stats.html.haml
│       │   └── moderate/
│       │       ├── _top_moderate.html.haml
│       │       ├── index.html.haml
│       │       └── subtabs/
│       │           ├── _banned.html.haml
│       │           ├── _flagged_answers.html.haml
│       │           ├── _flagged_questions.html.haml
│       │           └── _retag.html.haml
│       ├── announcements/
│       │   ├── _form.html.haml
│       │   └── index.html.haml
│       ├── answers/
│       │   ├── _answer.html.haml
│       │   ├── _changes.html.haml
│       │   ├── _diff_actions.html.haml
│       │   ├── _edit_form.html.haml
│       │   ├── _editor.html.haml
│       │   ├── _form.html.haml
│       │   ├── diff.html.haml
│       │   ├── edit.html.haml
│       │   ├── flag.html.haml
│       │   ├── history.html.haml
│       │   ├── index.html.haml
│       │   ├── revert.html.haml
│       │   ├── show.html.haml
│       │   └── show.mobile.haml
│       ├── badges/
│       │   ├── _badge.html.haml
│       │   ├── _user.html.haml
│       │   ├── index.html.haml
│       │   └── show.html.haml
│       ├── close_requests/
│       │   ├── _form.html.haml
│       │   ├── _list.html.haml
│       │   ├── edit.html.haml
│       │   ├── index.html.haml
│       │   └── new.html.haml
│       ├── comments/
│       │   ├── _comment.html.haml
│       │   ├── _edit_form.html.haml
│       │   ├── _form.html.haml
│       │   ├── _form.mobile.haml
│       │   ├── create.js.erb
│       │   ├── edit.html.haml
│       │   ├── edit.js.erb
│       │   ├── show_errors.js.erb
│       │   └── update.js.erb
│       ├── constrains_configs/
│       │   ├── _form.html.haml
│       │   ├── edit.html.haml
│       │   ├── index.html.haml
│       │   └── new.html.haml
│       ├── devise/
│       │   ├── confirmations/
│       │   │   └── new.html.haml
│       │   ├── passwords/
│       │   │   ├── edit.html.haml
│       │   │   └── new.html.haml
│       │   ├── registrations/
│       │   │   ├── edit.html.haml
│       │   │   └── new.html.haml
│       │   ├── sessions/
│       │   │   ├── _login.html.haml
│       │   │   ├── _openid.html.haml
│       │   │   ├── new.html.haml
│       │   │   └── new.mobile.haml
│       │   └── unlocks/
│       │       └── new.html.haml
│       ├── devise_mailer/
│       │   ├── confirmation_instructions.html.haml
│       │   ├── reset_password_instructions.html.haml
│       │   └── unlock_instructions.html.haml
│       ├── doc/
│       │   ├── chat.html.haml
│       │   ├── plans.html.haml
│       │   ├── privacy.html.haml
│       │   ├── privacy_en.html.haml
│       │   ├── privacy_ja.html.haml
│       │   ├── tos.html.haml
│       │   ├── tos_en.html.haml
│       │   └── tos_ja.html.haml
│       ├── facebook/
│       │   ├── _answer.html.haml
│       │   ├── _enable_page.html.haml
│       │   ├── _form.html.haml
│       │   ├── _question.html.haml
│       │   ├── _user.html.haml
│       │   └── index.html.haml
│       ├── flags/
│       │   ├── _answer.html.haml
│       │   ├── _comment.html.haml
│       │   ├── _form.html.haml
│       │   ├── _list.html.haml
│       │   ├── _question.html.haml
│       │   ├── edit.html.haml
│       │   └── new.html.haml
│       ├── groups/
│       │   ├── _form.html.haml
│       │   ├── _group.html.haml
│       │   ├── _reputation_constrains_form.haml
│       │   ├── _reputation_rewards_form.haml
│       │   ├── _top_grouplist.html.haml
│       │   ├── check_custom_domain.html.haml
│       │   ├── edit.html.haml
│       │   ├── index.html.haml
│       │   ├── new.html.haml
│       │   ├── show.html.haml
│       │   └── upgrade.html.haml
│       ├── imports/
│       │   ├── index.html.haml
│       │   └── subtabs/
│       │       └── _need_confirmation.html.haml
│       ├── invitations/
│       │   └── accept.html.haml
│       ├── invoices/
│       │   ├── _form.html.haml
│       │   ├── _invoice.html.haml
│       │   ├── edit.html.haml
│       │   ├── index.html.haml
│       │   ├── show.html.haml
│       │   ├── success.html.haml
│       │   └── upcoming.html.haml
│       ├── kaminari/
│       │   ├── _first_page.mobile.haml
│       │   ├── _gap.mobile.haml
│       │   ├── _last_page.mobile.haml
│       │   ├── _next_page.mobile.haml
│       │   ├── _page.mobile.haml
│       │   ├── _paginator.mobile.haml
│       │   └── _prev_page.mobile.haml
│       ├── layouts/
│       │   ├── application.html.haml
│       │   ├── classic.html.haml
│       │   ├── doc.html.haml
│       │   ├── facebook.html.haml
│       │   ├── invitations.html.haml
│       │   ├── manage.html.haml
│       │   ├── mobile.mobile.haml
│       │   ├── notifications.html.haml
│       │   ├── notifications.text.haml
│       │   ├── plans.html.haml
│       │   ├── printing.html.haml
│       │   ├── sessions.html.haml
│       │   ├── shapadocom.html.haml
│       │   └── theme_layout.mustache.mustache
│       ├── members/
│       │   ├── _member.html.haml
│       │   └── index.html.haml
│       ├── moderate/
│       │   ├── answers/
│       │   │   ├── _subtabs.html.haml
│       │   │   ├── banning.html.haml
│       │   │   └── index.html.haml
│       │   ├── questions/
│       │   │   ├── _closing_form.html.haml
│       │   │   ├── _opening_form.html.haml
│       │   │   ├── _subtabs.html.haml
│       │   │   ├── banning.html.haml
│       │   │   ├── closing.html.haml
│       │   │   ├── flagged.html.haml
│       │   │   ├── index.html.haml
│       │   │   ├── opening.html.haml
│       │   │   ├── to_close.html.haml
│       │   │   └── to_open.html.haml
│       │   ├── shared/
│       │   │   └── _banning_form.html.haml
│       │   └── users/
│       │       ├── _subtabs.html.haml
│       │       └── index.html.haml
│       ├── notifications/
│       │   ├── _notification_item.html.haml
│       │   └── _notifications_menu.html.haml
│       ├── notifier/
│       │   ├── admin_login.text.haml
│       │   ├── created_flag.html.haml
│       │   ├── created_flag.text.haml
│       │   ├── earned_badge.html.haml
│       │   ├── earned_badge.text.haml
│       │   ├── favorited.html.haml
│       │   ├── favorited.text.haml
│       │   ├── follow.html.haml
│       │   ├── follow.text.haml
│       │   ├── give_advice.html.haml
│       │   ├── give_advice.text.haml
│       │   ├── new_answer.html.haml
│       │   ├── new_answer.text.haml
│       │   ├── new_comment.html.haml
│       │   ├── new_comment.text.haml
│       │   ├── new_feedback.text.haml
│       │   ├── new_invitation.html.haml
│       │   ├── new_invitation.text.haml
│       │   └── report.text.haml
│       ├── open_requests/
│       │   ├── _form.html.haml
│       │   ├── _list.html.haml
│       │   ├── edit.html.haml
│       │   ├── index.html.haml
│       │   └── new.html.haml
│       ├── pages/
│       │   ├── _form.html.haml
│       │   ├── edit.html.haml
│       │   ├── index.html.haml
│       │   ├── new.html.haml
│       │   └── show.html.haml
│       ├── public_errors/
│       │   ├── forbidden.html.haml
│       │   ├── internal_server_error.html.haml
│       │   ├── not_found.html.haml
│       │   └── unprocessable_entity.html.haml
│       ├── questions/
│       │   ├── _answer.html.haml
│       │   ├── _answer.mobile.haml
│       │   ├── _answer_toolbar.html.haml
│       │   ├── _answered_by.html.haml
│       │   ├── _answered_by.mobile.haml
│       │   ├── _attachment_editor.html.haml
│       │   ├── _attachments.html.haml
│       │   ├── _changes.html.haml
│       │   ├── _diff_actions.html.haml
│       │   ├── _editor.html.haml
│       │   ├── _followup_form.html.haml
│       │   ├── _form.html.haml
│       │   ├── _nav_filters.html.haml
│       │   ├── _question.html.haml
│       │   ├── _requests_menu.html.haml
│       │   ├── _retag_form.haml
│       │   ├── _reward_form.html.haml
│       │   ├── _reward_info.html.haml
│       │   ├── _toolbar.html.haml
│       │   ├── diff.html.haml
│       │   ├── edit.html.haml
│       │   ├── flag.html.haml
│       │   ├── history.html.haml
│       │   ├── index.atom.builder
│       │   ├── index.html.haml
│       │   ├── index.mobile.haml
│       │   ├── index.mustache.mustache
│       │   ├── move.html.haml
│       │   ├── new.html.haml
│       │   ├── new.mobile.haml
│       │   ├── retag.html.haml
│       │   ├── revert.html.haml
│       │   ├── share/
│       │   │   ├── _facebook.html.haml
│       │   │   ├── _identica.html.haml
│       │   │   ├── _linkedin.html.haml
│       │   │   ├── _shapado.html.haml
│       │   │   ├── _think.html.haml
│       │   │   └── _twitter.html.haml
│       │   ├── show.atom.builder
│       │   ├── show.html.haml
│       │   ├── show.mobile.haml
│       │   └── show.mustache.mustache
│       ├── searches/
│       │   ├── _form.html.haml
│       │   ├── _question.html.haml
│       │   ├── _search_box.html.haml
│       │   ├── index.html.haml
│       │   └── show.html.haml
│       ├── shared/
│       │   ├── _action-tabs.html.haml
│       │   ├── _analytics.haml
│       │   ├── _content-nav.html.haml
│       │   ├── _default_adsense.haml
│       │   ├── _devise_links.html.haml
│       │   ├── _editor.html.haml
│       │   ├── _empty.html.haml
│       │   ├── _error.html.haml
│       │   ├── _external_widget_settings.haml
│       │   ├── _flags.html.haml
│       │   ├── _isolate_topbar.html.haml
│       │   ├── _language_filter.html.haml
│       │   ├── _login_drop_down.html.haml
│       │   ├── _login_menu.html.haml
│       │   ├── _manage_navigation.html.haml
│       │   ├── _moderate_navigation.html.haml
│       │   ├── _networks.html.haml
│       │   ├── _pagination.html.haml
│       │   ├── _post.html.haml
│       │   ├── _posts.html.haml
│       │   ├── _preferred_tags.html.haml
│       │   ├── _quick_question_box.html.haml
│       │   ├── _social_connect.haml
│       │   ├── _suggestions.haml
│       │   ├── _tag_cloud.html.haml
│       │   ├── _tag_list.html.haml
│       │   ├── _topbar.html.haml
│       │   ├── _user-zone.html.haml:.user-zone.module.not_used
│       │   ├── _user_navigation.html.haml
│       │   ├── _vote_box.html.haml
│       │   ├── _widgets.html.haml
│       │   ├── layout/
│       │   │   ├── _activities.html.haml
│       │   │   ├── _column1.html.haml
│       │   │   ├── _column2.html.haml
│       │   │   ├── _column3.html.haml
│       │   │   ├── _css.html.haml
│       │   │   ├── _feed_urls.html.haml
│       │   │   ├── _feeds.html.haml
│       │   │   ├── _footer.html.haml
│       │   │   ├── _head.html.haml
│       │   │   ├── _header.html.haml
│       │   │   ├── _javascript.html.haml
│       │   │   ├── _meta.html.haml
│       │   │   ├── _notice.html.haml
│       │   │   └── _websocket.html.haml
│       │   └── mobile/
│       │       └── _header_actions.mobile.haml
│       ├── tags/
│       │   ├── _form.html.haml
│       │   ├── _show_json.haml
│       │   ├── _tag.html.haml
│       │   ├── _tag_table.html.haml
│       │   ├── edit.html.haml
│       │   ├── index.html.haml
│       │   ├── new.html.haml
│       │   └── show.html.haml
│       ├── themes/
│       │   ├── _form.html.haml
│       │   ├── _theme.html.haml
│       │   ├── edit.html.haml
│       │   ├── index.html.haml
│       │   ├── new.html.haml
│       │   └── show.html.haml
│       ├── users/
│       │   ├── _anonymous_form.html.haml
│       │   ├── _content-nav.html.haml
│       │   ├── _content_nav.html-haml
│       │   ├── _form.html.haml
│       │   ├── _membership.html.haml
│       │   ├── _top_user.html.haml
│       │   ├── _user.html.haml
│       │   ├── _user_bar.html.haml
│       │   ├── _user_data.html.haml
│       │   ├── _user_mini.html.haml
│       │   ├── edit.html.haml
│       │   ├── index.html.haml
│       │   ├── new.html.haml
│       │   ├── show/
│       │   │   ├── _show_json.haml
│       │   │   ├── _user_activity_content.html.haml
│       │   │   ├── _user_activity_filters.html.haml
│       │   │   ├── _user_answers_content.html.haml
│       │   │   ├── _user_answers_filters.html.haml
│       │   │   ├── _user_follows_content.html.haml
│       │   │   ├── _user_follows_filters.html.haml
│       │   │   ├── _user_show_content.html.haml
│       │   │   └── _user_show_filters.html.haml
│       │   ├── show.atom.builder
│       │   ├── show.html.haml
│       │   ├── show.mobile.haml
│       │   ├── social_connect.html.haml
│       │   └── suggestions.html.haml
│       ├── welcome/
│       │   ├── _feedback.haml
│       │   ├── _question.html.haml
│       │   ├── confirm_age.html.haml
│       │   ├── feedback.html.haml
│       │   ├── index.atom.builder
│       │   └── index.html.haml
│       ├── widgets/
│       │   ├── _about.html.haml
│       │   ├── _about_settings.html.haml
│       │   ├── _adbard_settings.html.haml
│       │   ├── _adsense.html.haml
│       │   ├── _adsense_settings.html.haml
│       │   ├── _ask_question.html.haml
│       │   ├── _ask_question_settings.html.haml
│       │   ├── _badges.html.haml
│       │   ├── _badges_settings.html.haml
│       │   ├── _contributors.html.haml
│       │   ├── _contributors_settings.html.haml
│       │   ├── _current_tags.html.haml
│       │   ├── _current_tags_settings.html.haml
│       │   ├── _custom_html.html.haml
│       │   ├── _custom_html_settings.html.haml
│       │   ├── _form.html.haml
│       │   ├── _group_networks.html.haml
│       │   ├── _group_networks_settings.html.haml
│       │   ├── _groups.html.haml
│       │   ├── _groups_settings.html.haml
│       │   ├── _header.html.haml
│       │   ├── _pages.html.haml
│       │   ├── _pages_settings.html.haml
│       │   ├── _question_badges.html.haml
│       │   ├── _question_badges_settings.html.haml
│       │   ├── _related_questions.html.haml
│       │   ├── _related_questions_settings.html.haml
│       │   ├── _share.html.haml
│       │   ├── _share_settings.html.haml
│       │   ├── _suggestions.haml
│       │   ├── _suggestions_settings.haml
│       │   ├── _tag_cloud.html.haml
│       │   ├── _tag_cloud_settings.html.haml
│       │   ├── _top_groups.html.haml
│       │   ├── _top_groups_settings.html.haml
│       │   ├── _top_users.html.haml
│       │   ├── _top_users_settings.html.haml
│       │   ├── _users.html.haml
│       │   ├── _users_settings.html.haml
│       │   ├── _widget.html.haml
│       │   ├── edit.html.haml
│       │   ├── embedded.html.haml
│       │   └── index.html.haml
│       └── wiki/
│           ├── _changes.html.haml
│           ├── _diff.html.haml
│           └── _version.html.haml
├── autotest/
│   └── discover.rb
├── config/
│   ├── application.rb
│   ├── assets.yml
│   ├── auth_providers.yml.sample
│   ├── boot.rb
│   ├── compass.config
│   ├── default_reputation.yml
│   ├── deploy.rb.sample
│   ├── environment.rb
│   ├── environments/
│   │   ├── development.rb
│   │   ├── production.rb
│   │   ├── staging.rb
│   │   └── test.rb
│   ├── initializers/
│   │   ├── 00_config.rb
│   │   ├── 01_locales.rb
│   │   ├── 03_themes.rb
│   │   ├── _mongoid_patches.rb
│   │   ├── active_tab.rb
│   │   ├── backtrace_silencers.rb
│   │   ├── compass.rb
│   │   ├── constants.rb
│   │   ├── devise.rb
│   │   ├── exceptions.rb
│   │   ├── flash_helper.rb
│   │   ├── geoip.rb
│   │   ├── inflections.rb
│   │   ├── kaminari_config.rb
│   │   ├── logger.rb
│   │   ├── mime_types.rb
│   │   ├── mongo.rb
│   │   ├── patches.rb
│   │   ├── payments.rb
│   │   └── session_store.rb
│   ├── load_config.rb
│   ├── locales/
│   │   ├── activities/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── de.yml
│   │   │   ├── en.yml
│   │   │   ├── es.yml
│   │   │   ├── fi.yml
│   │   │   ├── fo.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── lt.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── ne.yml
│   │   │   ├── nl.yml
│   │   │   ├── pl.yml
│   │   │   ├── ps.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── qqq.yml
│   │   │   ├── roa-tara.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── ta.yml
│   │   │   ├── tl.yml
│   │   │   ├── tr.yml
│   │   │   └── zh-CN.yml
│   │   ├── announcements/
│   │   │   ├── af.yml
│   │   │   ├── ar.yml
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── diq.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fo.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── haw.yml
│   │   │   ├── hr.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── km.yml
│   │   │   ├── ko.yml
│   │   │   ├── lb.yml
│   │   │   ├── lt.yml
│   │   │   ├── mk.yml
│   │   │   ├── mr.yml
│   │   │   ├── ms.yml
│   │   │   ├── my.yml
│   │   │   ├── nb.yml
│   │   │   ├── ne.yml
│   │   │   ├── nl.yml
│   │   │   ├── pl.yml
│   │   │   ├── pms.yml
│   │   │   ├── ps.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── qqq.yml
│   │   │   ├── roa-tara.yml
│   │   │   ├── ru.yml
│   │   │   ├── sah.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── ta.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   ├── tr.yml
│   │   │   └── zh-CN.yml
│   │   ├── answers/
│   │   │   ├── af.yml
│   │   │   ├── ar.yml
│   │   │   ├── az.yml
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fo.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl.yml
│   │   │   ├── haw.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── lb.yml
│   │   │   ├── lt.yml
│   │   │   ├── mk.yml
│   │   │   ├── mr.yml
│   │   │   ├── ms.yml
│   │   │   ├── my.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pl.yml
│   │   │   ├── ps.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── roa-tara.yml
│   │   │   ├── ru.yml
│   │   │   ├── sah.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── ta.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   ├── tr.yml
│   │   │   └── zh-CN.yml
│   │   ├── badges/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nl.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── cldr_lang/
│   │   │   ├── af.yml
│   │   │   ├── am.yml
│   │   │   ├── ar.yml
│   │   │   ├── as.yml
│   │   │   ├── az-Cyrl.yml
│   │   │   ├── az.yml
│   │   │   ├── be-Tarask.yml
│   │   │   ├── be.yml
│   │   │   ├── bg.yml
│   │   │   ├── bn-IN.yml
│   │   │   ├── bn.yml
│   │   │   ├── bo.yml
│   │   │   ├── bs.yml
│   │   │   ├── ca.yml
│   │   │   ├── cs.yml
│   │   │   ├── cy.yml
│   │   │   ├── da.yml
│   │   │   ├── de-CH.yml
│   │   │   ├── de.yml
│   │   │   ├── el-POLYTON.yml
│   │   │   ├── el.yml
│   │   │   ├── en-Dsrt.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── et.yml
│   │   │   ├── eu.yml
│   │   │   ├── fa-AF.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fil.yml
│   │   │   ├── fo.yml
│   │   │   ├── fr.yml
│   │   │   ├── ga.yml
│   │   │   ├── gl.yml
│   │   │   ├── gsw.yml
│   │   │   ├── gu.yml
│   │   │   ├── gv.yml
│   │   │   ├── ha.yml
│   │   │   ├── haw.yml
│   │   │   ├── he.yml
│   │   │   ├── hi.yml
│   │   │   ├── hr.yml
│   │   │   ├── hu.yml
│   │   │   ├── hy.yml
│   │   │   ├── id.yml
│   │   │   ├── ii.yml
│   │   │   ├── is.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ka.yml
│   │   │   ├── kk.yml
│   │   │   ├── kl.yml
│   │   │   ├── km.yml
│   │   │   ├── kn.yml
│   │   │   ├── ko.yml
│   │   │   ├── kok.yml
│   │   │   ├── kw.yml
│   │   │   ├── ky.yml
│   │   │   ├── ln.yml
│   │   │   ├── lt.yml
│   │   │   ├── lv.yml
│   │   │   ├── mk.yml
│   │   │   ├── ml.yml
│   │   │   ├── mn.yml
│   │   │   ├── mr.yml
│   │   │   ├── ms.yml
│   │   │   ├── mt.yml
│   │   │   ├── my.yml
│   │   │   ├── nb.yml
│   │   │   ├── ne.yml
│   │   │   ├── nl-BE.yml
│   │   │   ├── nl.yml
│   │   │   ├── nn.yml
│   │   │   ├── nr.yml
│   │   │   ├── nso.yml
│   │   │   ├── om.yml
│   │   │   ├── or.yml
│   │   │   ├── pa-Arab.yml
│   │   │   ├── pa.yml
│   │   │   ├── pl.yml
│   │   │   ├── ps.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── pt.yml
│   │   │   ├── ro.yml
│   │   │   ├── ru-UA.yml
│   │   │   ├── ru.yml
│   │   │   ├── sa.yml
│   │   │   ├── se-FI.yml
│   │   │   ├── si.yml
│   │   │   ├── sk.yml
│   │   │   ├── sl.yml
│   │   │   ├── so.yml
│   │   │   ├── sq.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── ss.yml
│   │   │   ├── st.yml
│   │   │   ├── sv.yml
│   │   │   ├── sw.yml
│   │   │   ├── ta.yml
│   │   │   ├── te.yml
│   │   │   ├── tg.yml
│   │   │   ├── th.yml
│   │   │   ├── ti.yml
│   │   │   ├── tl.yml
│   │   │   ├── tn.yml
│   │   │   ├── tr.yml
│   │   │   ├── trv.yml
│   │   │   ├── ts.yml
│   │   │   ├── uk.yml
│   │   │   ├── ur.yml
│   │   │   ├── uz-Arab.yml
│   │   │   ├── uz-Latn.yml
│   │   │   ├── uz.yml
│   │   │   ├── ve.yml
│   │   │   ├── vi.yml
│   │   │   ├── xh.yml
│   │   │   ├── yo.yml
│   │   │   ├── zh-Hant-HK.yml
│   │   │   ├── zh-Hant.yml
│   │   │   ├── zh.yml
│   │   │   └── zu.yml
│   │   ├── close_requests/
│   │   │   ├── af.yml
│   │   │   ├── ar.yml
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nl.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── roa-tara.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── comments/
│   │   │   ├── af.yml
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── diq.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── lb.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pl.yml
│   │   │   ├── pms.yml
│   │   │   ├── ps.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── qqq.yml
│   │   │   ├── roa-tara.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── ta.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── constrains_config/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── ca.yml
│   │   │   ├── de.yml
│   │   │   ├── en.yml
│   │   │   ├── es.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── it.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nl.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   └── tl.yml
│   │   ├── custom_html/
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── es.yml
│   │   │   ├── fr.yml
│   │   │   ├── ja.yml
│   │   │   └── pt.yml
│   │   ├── default/
│   │   │   ├── ar.yml
│   │   │   ├── az.yml
│   │   │   ├── bg.yml
│   │   │   ├── bn-IN.yml
│   │   │   ├── bs.yml
│   │   │   ├── ca.yml
│   │   │   ├── cs.yml
│   │   │   ├── csb.yml
│   │   │   ├── cy.yml
│   │   │   ├── da.yml
│   │   │   ├── de-AT.yml
│   │   │   ├── de-CH.yml
│   │   │   ├── de.yml
│   │   │   ├── dsb.yml
│   │   │   ├── el.yml
│   │   │   ├── en-AU.yml
│   │   │   ├── en-CA.yml
│   │   │   ├── en-GB.yml
│   │   │   ├── en-IN.yml
│   │   │   ├── en-US.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es-AR.yml
│   │   │   ├── es-CL.yml
│   │   │   ├── es-CO.yml
│   │   │   ├── es-MX.yml
│   │   │   ├── es-PE.yml
│   │   │   ├── es.yml
│   │   │   ├── et.yml
│   │   │   ├── eu.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr-CA.yml
│   │   │   ├── fr-CH.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl-ES.yml
│   │   │   ├── gsw.yml
│   │   │   ├── he.yml
│   │   │   ├── hi-IN.yml
│   │   │   ├── hi.yml
│   │   │   ├── hr.yml
│   │   │   ├── hsb.yml
│   │   │   ├── hu.yml
│   │   │   ├── id.yml
│   │   │   ├── is.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── kn.yml
│   │   │   ├── ko.yml
│   │   │   ├── lo.yml
│   │   │   ├── lt.yml
│   │   │   ├── lv.yml
│   │   │   ├── mk.yml
│   │   │   ├── mn.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── nn.yml
│   │   │   ├── pl.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── rm.yml
│   │   │   ├── ro.yml
│   │   │   ├── ru.yml
│   │   │   ├── sk.yml
│   │   │   ├── sl.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv-SE.yml
│   │   │   ├── sw.yml
│   │   │   ├── th.yml
│   │   │   ├── tl.yml
│   │   │   ├── tr.yml
│   │   │   ├── uk.yml
│   │   │   ├── vi.yml
│   │   │   ├── wo.yml
│   │   │   ├── zh-CN.yml
│   │   │   └── zh-TW.yml
│   │   ├── devise/
│   │   │   ├── devise.be-Tarask.yml
│   │   │   ├── devise.br.yml
│   │   │   ├── devise.ca.yml
│   │   │   ├── devise.da.yml
│   │   │   ├── devise.de.yml
│   │   │   ├── devise.el.yml
│   │   │   ├── devise.en.yml
│   │   │   ├── devise.eo.yml
│   │   │   ├── devise.es.yml
│   │   │   ├── devise.fa.yml
│   │   │   ├── devise.fi.yml
│   │   │   ├── devise.fr.yml
│   │   │   ├── devise.gl.yml
│   │   │   ├── devise.hu.yml
│   │   │   ├── devise.ia.yml
│   │   │   ├── devise.it.yml
│   │   │   ├── devise.ja.yml
│   │   │   ├── devise.mk.yml
│   │   │   ├── devise.ms.yml
│   │   │   ├── devise.nl.yml
│   │   │   ├── devise.pt-BR.yml
│   │   │   ├── devise.pt-PT.yml
│   │   │   ├── devise.ru.yml
│   │   │   ├── devise.sr-Latn.yml
│   │   │   ├── devise.sr.yml
│   │   │   ├── devise.sv.yml
│   │   │   ├── devise.tl.yml
│   │   │   └── devise.zh-CN.yml
│   │   ├── doc/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── errors/
│   │   │   ├── af.yml
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── lb.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── favorites/
│   │   │   ├── af.yml
│   │   │   ├── az.yml
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── lb.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pl.yml
│   │   │   ├── pms.yml
│   │   │   ├── ps.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── qqq.yml
│   │   │   ├── roa-tara.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── flags/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nl.yml
│   │   │   ├── pms.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   ├── tt.yml
│   │   │   └── zh-CN.yml
│   │   ├── global/
│   │   │   ├── af.yml
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pl.yml
│   │   │   ├── ps.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── qqq.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── groups/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nl.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── imports/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── bs.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── he.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── lb.yml
│   │   │   ├── lv.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pl.yml
│   │   │   ├── pms.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── si.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── invitations/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── ca.yml
│   │   │   ├── de.yml
│   │   │   ├── en.yml
│   │   │   ├── es.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── ia.yml
│   │   │   ├── it.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nl.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   └── tl.yml
│   │   ├── invoices/
│   │   │   └── en.yml
│   │   ├── jobs/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── ca.yml
│   │   │   ├── de.yml
│   │   │   ├── en.yml
│   │   │   ├── es.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── ia.yml
│   │   │   ├── it.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nl.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   └── tl.yml
│   │   ├── layouts/
│   │   │   ├── af.yml
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nl.yml
│   │   │   ├── pl.yml
│   │   │   ├── ps.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── mailers/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pms.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── manage/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nl.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── members/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── lb.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pms.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── moderate/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── lb.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nl.yml
│   │   │   ├── pms.yml
│   │   │   ├── ps.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── notifier/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── it.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   └── tl.yml
│   │   ├── open_requests/
│   │   │   ├── af.yml
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── bs.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── en.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── it.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nl.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── pages/
│   │   │   ├── ar.yml
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── diq.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── ig.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── ku-Latn.yml
│   │   │   ├── lb.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pl.yml
│   │   │   ├── ps.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── questions/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nl.yml
│   │   │   ├── pl.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── qqq.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── rewards/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── ca.yml
│   │   │   ├── de.yml
│   │   │   ├── en.yml
│   │   │   ├── es.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── it.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nl.yml
│   │   │   ├── sr-Latn.yml
│   │   │   └── sr.yml
│   │   ├── searches/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nl.yml
│   │   │   ├── pms.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── sessions/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pl.yml
│   │   │   ├── ps.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── szl.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── shared/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pl.yml
│   │   │   ├── pms.yml
│   │   │   ├── ps.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── si.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── szl.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── tags/
│   │   │   └── en.yml
│   │   ├── themes/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── ca.yml
│   │   │   ├── de.yml
│   │   │   ├── en.yml
│   │   │   ├── es.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── it.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nl.yml
│   │   │   ├── sr-Latn.yml
│   │   │   └── sr.yml
│   │   ├── unfavorites/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── diq.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pl.yml
│   │   │   ├── pms.yml
│   │   │   ├── ps.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── qqq.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── users/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── lb.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pl.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── versions/
│   │   │   └── en.yml
│   │   ├── votes/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── ne.yml
│   │   │   ├── nl.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── welcome/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pl.yml
│   │   │   ├── ps.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   ├── tr.yml
│   │   │   └── zh-CN.yml
│   │   ├── widgets/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pl.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   └── wiki/
│   │       ├── be-Tarask.yml
│   │       ├── br.yml
│   │       ├── ca.yml
│   │       ├── da.yml
│   │       ├── de.yml
│   │       ├── el.yml
│   │       ├── en.yml
│   │       ├── es-419.yml
│   │       ├── es.yml
│   │       ├── fa.yml
│   │       ├── fi.yml
│   │       ├── fr.yml
│   │       ├── fur.yml
│   │       ├── gl.yml
│   │       ├── hu.yml
│   │       ├── ia.yml
│   │       ├── id.yml
│   │       ├── it.yml
│   │       ├── ja.yml
│   │       ├── ko.yml
│   │       ├── lb.yml
│   │       ├── lt.yml
│   │       ├── mk.yml
│   │       ├── ms.yml
│   │       ├── nb.yml
│   │       ├── nl.yml
│   │       ├── pl.yml
│   │       ├── pms.yml
│   │       ├── pt-BR.yml
│   │       ├── pt-PT.yml
│   │       ├── ru.yml
│   │       ├── sl.yml
│   │       ├── sr-Latn.yml
│   │       ├── sr.yml
│   │       ├── sv.yml
│   │       ├── te.yml
│   │       ├── tl.yml
│   │       ├── tr.yml
│   │       └── zh-CN.yml
│   ├── magent.yml
│   ├── mongoid.yml.sample
│   ├── newrelic.yml.sample
│   ├── payments.yml.sample
│   ├── pills/
│   │   └── websocket.pill.erb
│   ├── reputation.yml
│   ├── routes.rb
│   ├── schedule.rb
│   ├── shapado.yml.sample
│   ├── share_links.yml
│   ├── unicorn/
│   │   ├── bluepill.rb
│   │   ├── nginx.conf
│   │   ├── postfix-main.cf
│   │   └── unicorn.rb
│   ├── versions.yml
│   └── xapit.yml
├── config.ru
├── data/
│   └── countries.json
├── db/
│   ├── fixtures/
│   │   └── pages/
│   │       ├── faq.el.markdown
│   │       ├── faq.en.markdown
│   │       ├── faq.es.markdown
│   │       ├── faq.fr.markdown
│   │       └── faq.pt.markdown
│   └── seeds.rb
├── doc/
│   └── README_FOR_APP
├── lib/
│   ├── assets/
│   │   └── stylesheets/
│   │       └── multiauth.css
│   ├── fixed_array.rb
│   ├── flash_helper/
│   │   ├── application.rb
│   │   └── application_helper.rb
│   ├── jobs/
│   │   ├── activities.rb
│   │   ├── answers.rb
│   │   ├── base.rb
│   │   ├── images.rb
│   │   ├── mailer.rb
│   │   ├── questions.rb
│   │   ├── tags.rb
│   │   ├── themes.rb
│   │   ├── users.rb
│   │   └── votes.rb
│   ├── level_system.rb
│   ├── multiauth_support.rb
│   ├── nominatim.rb
│   ├── sass/
│   │   ├── generals.scss
│   │   ├── items.scss
│   │   ├── layout.scss
│   │   ├── theme_template.scss
│   │   └── widgets.scss
│   ├── shapado/
│   │   ├── controllers/
│   │   │   ├── access.rb
│   │   │   ├── locale.rb
│   │   │   ├── routes.rb
│   │   │   └── utils.rb
│   │   ├── file_wrapper.rb
│   │   ├── models/
│   │   │   ├── custom_html_methods.rb
│   │   │   ├── geo_common.rb
│   │   │   ├── networks.rb
│   │   │   └── trackable.rb
│   │   └── scripting/
│   │       ├── application.rb
│   │       └── easy_loader.rb
│   ├── smtp_tls.rb
│   ├── sso_strategy.rb
│   ├── subdomains.rb
│   ├── sweepers.rb
│   ├── tasks/
│   │   ├── fix_db.rake
│   │   ├── jsassets.rake
│   │   ├── populator.rake
│   │   ├── setup.rake
│   │   ├── shapado3-to-4.rake
│   │   └── shapado40to41.rake
│   └── twitter_renderer.rb
├── magent.init.rb
├── old_show.html.haml
├── public/
│   ├── close_popup.html
│   ├── codemirror/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── compress.html
│   │   ├── css/
│   │   │   └── docs.css
│   │   ├── demo/
│   │   │   ├── activeline.html
│   │   │   ├── changemode.html
│   │   │   ├── complete.html
│   │   │   ├── complete.js
│   │   │   ├── fullscreen.html
│   │   │   ├── marker.html
│   │   │   ├── mustache.html
│   │   │   ├── preview.html
│   │   │   ├── resize.html
│   │   │   ├── runmode.html
│   │   │   ├── search.html
│   │   │   └── theme.html
│   │   ├── index.html
│   │   ├── internals.html
│   │   ├── lib/
│   │   │   ├── overlay.js
│   │   │   └── runmode.js
│   │   ├── manual.html
│   │   ├── oldrelease.html
│   │   ├── test/
│   │   │   ├── index.html
│   │   │   └── test.js
│   │   └── theme/
│   │       ├── cobalt.css
│   │       ├── eclipse.css
│   │       ├── elegant.css
│   │       ├── neat.css
│   │       └── night.css
│   ├── errors/
│   │   ├── javascripts/
│   │   │   └── bug_hunter.js
│   │   └── stylesheets/
│   │       └── highlight.css
│   ├── robots.txt
│   └── stylesheets/
│       ├── compoments/
│       │   └── dialog.css
│       ├── ie7.css
│       └── jquery.ui.tabs.css
├── script/
│   ├── cleanup
│   ├── daily_report
│   ├── export
│   ├── find_experts
│   ├── handle_email
│   ├── import
│   ├── import_email
│   ├── import_twitter
│   ├── rails
│   ├── update_geoip
│   └── websocket
├── spec/
│   ├── controllers/
│   │   ├── activities_controller_spec.rb
│   │   ├── answers_controller_spec.rb
│   │   ├── close_requests_controller_spec.rb
│   │   ├── comments_controller_spec.rb
│   │   ├── groups_controller_spec.rb
│   │   ├── mobile_controller_spec.rb
│   │   ├── questions_controller_spec.rb
│   │   ├── searches_controller_spec.rb
│   │   ├── themes_controller_spec.rb
│   │   ├── users_controller_spec.rb
│   │   └── votes_controller_spec.rb
│   ├── fabricators/
│   │   ├── answer_fabricator.rb
│   │   ├── close_request_fabricator.rb
│   │   ├── comment_fabricator.rb
│   │   ├── group_fabricator.rb
│   │   ├── notification_config_fabricator.rb
│   │   ├── question_fabricator.rb
│   │   ├── search_fabricator.rb
│   │   ├── theme_fabricator.rb
│   │   ├── user_fabricator.rb
│   │   └── user_stat_fabricator.rb
│   ├── helpers/
│   │   ├── mobile_helper_spec.rb
│   │   └── themes_helper_spec.rb
│   ├── lib/
│   │   └── jobs/
│   │       ├── activities_spec.rb
│   │       ├── answers_spec.rb
│   │       ├── mailer_spec.rb
│   │       ├── questions_spec.rb
│   │       ├── tags_spec.rb
│   │       ├── users_spec.rb
│   │       └── votes_spec.rb
│   ├── models/
│   │   ├── answer_spec.rb
│   │   ├── group_spec.rb
│   │   ├── question_spec.rb
│   │   ├── theme_spec.rb
│   │   └── user_spec.rb
│   ├── requests/
│   │   └── questions_spec.rb
│   ├── routing/
│   │   └── themes_routing_spec.rb
│   ├── spec_helper.rb
│   └── support/
│       └── omniauth.rb
├── vendor/
│   ├── assets/
│   │   ├── javascripts/
│   │   │   ├── codemirror/
│   │   │   │   ├── codemirror.js
│   │   │   │   └── mode/
│   │   │   │       ├── clike/
│   │   │   │       │   ├── clike.js
│   │   │   │       │   └── index.html
│   │   │   │       ├── clojure/
│   │   │   │       │   ├── clojure.js
│   │   │   │       │   └── index.html
│   │   │   │       ├── coffeescript/
│   │   │   │       │   ├── LICENSE
│   │   │   │       │   ├── coffeescript.js
│   │   │   │       │   └── index.html
│   │   │   │       ├── css/
│   │   │   │       │   ├── css.js
│   │   │   │       │   └── index.html
│   │   │   │       ├── diff/
│   │   │   │       │   ├── diff.css
│   │   │   │       │   ├── diff.js
│   │   │   │       │   └── index.html
│   │   │   │       ├── groovy/
│   │   │   │       │   ├── groovy.js
│   │   │   │       │   └── index.html
│   │   │   │       ├── haskell/
│   │   │   │       │   ├── haskell.js
│   │   │   │       │   └── index.html
│   │   │   │       ├── htmlmixed/
│   │   │   │       │   ├── htmlmixed.js
│   │   │   │       │   └── index.html
│   │   │   │       ├── javascript/
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── javascript.js
│   │   │   │       ├── jinja2/
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── jinja2.js
│   │   │   │       ├── lua/
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── lua.js
│   │   │   │       ├── markdown/
│   │   │   │       │   ├── index.html
│   │   │   │       │   ├── markdown.css
│   │   │   │       │   └── markdown.js
│   │   │   │       ├── ntriples/
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── ntriples.js
│   │   │   │       ├── pascal/
│   │   │   │       │   ├── LICENSE
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── pascal.js
│   │   │   │       ├── perl/
│   │   │   │       │   ├── LICENSE
│   │   │   │       │   └── index.html
│   │   │   │       ├── php/
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── php.js
│   │   │   │       ├── plsql/
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── plsql.js
│   │   │   │       ├── python/
│   │   │   │       │   ├── LICENSE.txt
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── python.js
│   │   │   │       ├── r/
│   │   │   │       │   ├── LICENSE
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── r.js
│   │   │   │       ├── rst/
│   │   │   │       │   ├── index.html
│   │   │   │       │   ├── rst.css
│   │   │   │       │   └── rst.js
│   │   │   │       ├── ruby/
│   │   │   │       │   ├── LICENSE
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── ruby.js
│   │   │   │       ├── rust/
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── rust.js
│   │   │   │       ├── scheme/
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── scheme.js
│   │   │   │       ├── smalltalk/
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── smalltalk.js
│   │   │   │       ├── sparql/
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── sparql.js
│   │   │   │       ├── stex/
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── stex.js
│   │   │   │       ├── tiddlywiki/
│   │   │   │       │   ├── index.html
│   │   │   │       │   ├── tiddlywiki.css
│   │   │   │       │   └── tiddlywiki.js
│   │   │   │       ├── velocity/
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── velocity.js
│   │   │   │       ├── xml/
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── xml.js
│   │   │   │       ├── xmlpure/
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── xmlpure.js
│   │   │   │       └── yaml/
│   │   │   │           ├── index.html
│   │   │   │           └── yaml.js
│   │   │   ├── jpicker.js
│   │   │   ├── mobile/
│   │   │   │   └── jquery_mobile.js
│   │   │   ├── modernizr.js
│   │   │   └── tipsy/
│   │   │       └── jquery.tipsy.js
│   │   └── stylesheets/
│   │       ├── chosen/
│   │       │   └── chosen.css
│   │       ├── codemirror/
│   │       │   ├── codemirror.css.scss
│   │       │   └── default.css.scss
│   │       ├── h5bp/
│   │       │   ├── helpers.css.scss
│   │       │   ├── media.css.scss
│   │       │   ├── print.css.scss
│   │       │   └── reset.css.scss
│   │       ├── jpicker/
│   │       │   └── jPicker-1.1.6.css.scss
│   │       ├── jquery-ui/
│   │       │   └── jquery-ui.css.scss
│   │       ├── mobile/
│   │       │   └── jquery_mobile.css.scss
│   │       ├── prettify.css
│   │       └── tipsy/
│   │           └── tipsy.css
│   └── plugins/
│       ├── exception_notification/
│       │   ├── README
│       │   ├── exception_notification.gemspec
│       │   └── lib/
│       │       ├── exception_notifier/
│       │       │   ├── notifier.rb
│       │       │   └── views/
│       │       │       └── exception_notifier/
│       │       │           ├── _backtrace.text.erb
│       │       │           ├── _environment.text.erb
│       │       │           ├── _request.text.erb
│       │       │           ├── _session.text.erb
│       │       │           ├── _title.text.erb
│       │       │           └── exception_notification.text.erb
│       │       └── exception_notifier.rb
│       └── gravatar/
│           ├── MIT-LICENSE
│           ├── README.rdoc
│           ├── Rakefile
│           ├── about.yml
│           ├── init.rb
│           ├── lib/
│           │   └── gravatar.rb
│           └── spec/
│               └── gravatar_spec.rb
└── xapit.ru

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
*~
.DS_Store
*.swp
*.bak
*.orig
coverage
public/stylesheets/compiled/
config/shapado.yml
config/payments.yml
data/*.dat
config/mongoid.yml
config/database.yml
config/auth_providers.yml
base_packaged.*
.directory
.bundle
log/*.log
tmp/**/*
vendor/cache/*.gem
public/javascripts/login_packaged.js
public/javascripts/show_packaged.js
public/javascripts/jsMath/fonts/
public/javascripts/packaged/
public/stylesheets/packaged/
public/packages/
.sass-cache
*.kdev4
.redcar
.idea
tunnlr.yml


================================================
FILE: .gitmodules
================================================


================================================
FILE: .mailmap
================================================
Jorge H. Cuadrado <kuadrosxx@gmail.com>
Jorge Cuadrado <kuadrosxx@gmail.com>
Carlos <carlos@carlos-desktop.(none)>
Carlos <carlosfvpais@gmail.com>
Cyril Mougel <cyril.mougel@af83.com>
Cyril Mougel <cyril@yeastymobs.com>


================================================
FILE: .rspec
================================================
--colour


================================================
FILE: AUTHORS
================================================

Contributors
------------

David Cuadrado
Diego Mazzocchi
Jorge Cuadrado
Patrick Aljord
Victor Cedeno



================================================
FILE: COPYING
================================================
                    GNU AFFERO GENERAL PUBLIC LICENSE
                       Version 3, 19 November 2007

 Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

                            Preamble

  The GNU Affero General Public License is a free, copyleft license for
software and other kinds of works, specifically designed to ensure
cooperation with the community in the case of network server software.

  The licenses for most software and other practical works are designed
to take away your freedom to share and change the works.  By contrast,
our General Public Licenses are intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.

  Developers that use our General Public Licenses protect your rights
with two steps: (1) assert copyright on the software, and (2) offer
you this License which gives you legal permission to copy, distribute
and/or modify the software.

  A secondary benefit of defending all users' freedom is that
improvements made in alternate versions of the program, if they
receive widespread use, become available for other developers to
incorporate.  Many developers of free software are heartened and
encouraged by the resulting cooperation.  However, in the case of
software used on network servers, this result may fail to come about.
The GNU General Public License permits making a modified version and
letting the public access it on a server without ever releasing its
source code to the public.

  The GNU Affero General Public License is designed specifically to
ensure that, in such cases, the modified source code becomes available
to the community.  It requires the operator of a network server to
provide the source code of the modified version running there to the
users of that server.  Therefore, public use of a modified version, on
a publicly accessible server, gives the public access to the source
code of the modified version.

  An older license, called the Affero General Public License and
published by Affero, was designed to accomplish similar goals.  This is
a different license, not a version of the Affero GPL, but Affero has
released a new version of the Affero GPL which permits relicensing under
this license.

  The precise terms and conditions for copying, distribution and
modification follow.

                       TERMS AND CONDITIONS

  0. Definitions.

  "This License" refers to version 3 of the GNU Affero General Public License.

  "Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.

  "The Program" refers to any copyrightable work licensed under this
License.  Each licensee is addressed as "you".  "Licensees" and
"recipients" may be individuals or organizations.

  To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy.  The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.

  A "covered work" means either the unmodified Program or a work based
on the Program.

  To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy.  Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.

  To "convey" a work means any kind of propagation that enables other
parties to make or receive copies.  Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.

  An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License.  If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.

  1. Source Code.

  The "source code" for a work means the preferred form of the work
for making modifications to it.  "Object code" means any non-source
form of a work.

  A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.

  The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form.  A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.

  The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities.  However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work.  For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.

  The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.

  The Corresponding Source for a work in source code form is that
same work.

  2. Basic Permissions.

  All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met.  This License explicitly affirms your unlimited
permission to run the unmodified Program.  The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work.  This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.

  You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force.  You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright.  Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.

  Conveying under any other circumstances is permitted solely under
the conditions stated below.  Sublicensing is not allowed; section 10
makes it unnecessary.

  3. Protecting Users' Legal Rights From Anti-Circumvention Law.

  No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.

  When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.

  4. Conveying Verbatim Copies.

  You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.

  You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.

  5. Conveying Modified Source Versions.

  You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:

    a) The work must carry prominent notices stating that you modified
    it, and giving a relevant date.

    b) The work must carry prominent notices stating that it is
    released under this License and any conditions added under section
    7.  This requirement modifies the requirement in section 4 to
    "keep intact all notices".

    c) You must license the entire work, as a whole, under this
    License to anyone who comes into possession of a copy.  This
    License will therefore apply, along with any applicable section 7
    additional terms, to the whole of the work, and all its parts,
    regardless of how they are packaged.  This License gives no
    permission to license the work in any other way, but it does not
    invalidate such permission if you have separately received it.

    d) If the work has interactive user interfaces, each must display
    Appropriate Legal Notices; however, if the Program has interactive
    interfaces that do not display Appropriate Legal Notices, your
    work need not make them do so.

  A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit.  Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.

  6. Conveying Non-Source Forms.

  You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:

    a) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by the
    Corresponding Source fixed on a durable physical medium
    customarily used for software interchange.

    b) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by a
    written offer, valid for at least three years and valid for as
    long as you offer spare parts or customer support for that product
    model, to give anyone who possesses the object code either (1) a
    copy of the Corresponding Source for all the software in the
    product that is covered by this License, on a durable physical
    medium customarily used for software interchange, for a price no
    more than your reasonable cost of physically performing this
    conveying of source, or (2) access to copy the
    Corresponding Source from a network server at no charge.

    c) Convey individual copies of the object code with a copy of the
    written offer to provide the Corresponding Source.  This
    alternative is allowed only occasionally and noncommercially, and
    only if you received the object code with such an offer, in accord
    with subsection 6b.

    d) Convey the object code by offering access from a designated
    place (gratis or for a charge), and offer equivalent access to the
    Corresponding Source in the same way through the same place at no
    further charge.  You need not require recipients to copy the
    Corresponding Source along with the object code.  If the place to
    copy the object code is a network server, the Corresponding Source
    may be on a different server (operated by you or a third party)
    that supports equivalent copying facilities, provided you maintain
    clear directions next to the object code saying where to find the
    Corresponding Source.  Regardless of what server hosts the
    Corresponding Source, you remain obligated to ensure that it is
    available for as long as needed to satisfy these requirements.

    e) Convey the object code using peer-to-peer transmission, provided
    you inform other peers where the object code and Corresponding
    Source of the work are being offered to the general public at no
    charge under subsection 6d.

  A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.

  A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling.  In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage.  For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product.  A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.

  "Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source.  The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.

  If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information.  But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).

  The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed.  Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.

  Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.

  7. Additional Terms.

  "Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law.  If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.

  When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it.  (Additional permissions may be written to require their own
removal in certain cases when you modify the work.)  You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.

  Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:

    a) Disclaiming warranty or limiting liability differently from the
    terms of sections 15 and 16 of this License; or

    b) Requiring preservation of specified reasonable legal notices or
    author attributions in that material or in the Appropriate Legal
    Notices displayed by works containing it; or

    c) Prohibiting misrepresentation of the origin of that material, or
    requiring that modified versions of such material be marked in
    reasonable ways as different from the original version; or

    d) Limiting the use for publicity purposes of names of licensors or
    authors of the material; or

    e) Declining to grant rights under trademark law for use of some
    trade names, trademarks, or service marks; or

    f) Requiring indemnification of licensors and authors of that
    material by anyone who conveys the material (or modified versions of
    it) with contractual assumptions of liability to the recipient, for
    any liability that these contractual assumptions directly impose on
    those licensors and authors.

  All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10.  If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term.  If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.

  If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.

  Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.

  8. Termination.

  You may not propagate or modify a covered work except as expressly
provided under this License.  Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).

  However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.

  Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.

  Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License.  If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.

  9. Acceptance Not Required for Having Copies.

  You are not required to accept this License in order to receive or
run a copy of the Program.  Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance.  However,
nothing other than this License grants you permission to propagate or
modify any covered work.  These actions infringe copyright if you do
not accept this License.  Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.

  10. Automatic Licensing of Downstream Recipients.

  Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License.  You are not responsible
for enforcing compliance by third parties with this License.

  An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations.  If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.

  You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License.  For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.

  11. Patents.

  A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based.  The
work thus licensed is called the contributor's "contributor version".

  A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version.  For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.

  Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.

  In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement).  To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.

  If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients.  "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.

  If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.

  A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License.  You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.

  Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.

  12. No Surrender of Others' Freedom.

  If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all.  For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.

  13. Remote Network Interaction; Use with the GNU General Public License.

  Notwithstanding any other provision of this License, if you modify the
Program, your modified version must prominently offer all users
interacting with it remotely through a computer network (if your version
supports such interaction) an opportunity to receive the Corresponding
Source of your version by providing access to the Corresponding Source
from a network server at no charge, through some standard or customary
means of facilitating copying of software.  This Corresponding Source
shall include the Corresponding Source for any work covered by version 3
of the GNU General Public License that is incorporated pursuant to the
following paragraph.

  Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU General Public License into a single
combined work, and to convey the resulting work.  The terms of this
License will continue to apply to the part which is the covered work,
but the work with which it is combined will remain governed by version
3 of the GNU General Public License.

  14. Revised Versions of this License.

  The Free Software Foundation may publish revised and/or new versions of
the GNU Affero General Public License from time to time.  Such new versions
will be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

  Each version is given a distinguishing version number.  If the
Program specifies that a certain numbered version of the GNU Affero General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation.  If the Program does not specify a version number of the
GNU Affero General Public License, you may choose any version ever published
by the Free Software Foundation.

  If the Program specifies that a proxy can decide which future
versions of the GNU Affero General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.

  Later license versions may give you additional or different
permissions.  However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.

  15. Disclaimer of Warranty.

  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

  16. Limitation of Liability.

  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.

  17. Interpretation of Sections 15 and 16.

  If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.

                     END OF TERMS AND CONDITIONS

            How to Apply These Terms to Your New Programs

  If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

  To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

    <one line to give the program's name and a brief idea of what it does.>
    Copyright (C) <year>  <name of author>

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Affero General Public License for more details.

    You should have received a copy of the GNU Affero General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.

Also add information on how to contact you by electronic and paper mail.

  If your software can interact with users remotely through a computer
network, you should also make sure that it provides a way for users to
get its source.  For example, if your program is a web application, its
interface could display a "Source" link that leads users to an archive
of the code.  There are many ways you could offer source, and different
solutions will be better for different programs; see section 13 for the
specific requirements.

  You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU AGPL, see
<http://www.gnu.org/licenses/>.



================================================
FILE: Gemfile
================================================
source 'http://rubygems.org'

gem 'rails', '3.2.6'

if RUBY_PLATFORM !~ /mswin|mingw/
  gem 'rdiscount', :git => 'git://github.com/ricodigo/rdiscount.git'

  gem 'ruby-stemmer', '~> 0.8.2', :require => 'lingua/stemmer'
  gem 'sanitize', '2.0.3'

  gem 'magic'
  gem 'mini_magick', '~> 2.3'
  gem 'nokogiri'
  gem 'mechanize'
else
  gem 'maruku', '0.6.0'
end
gem 'maruku'

# ui
gem 'haml', '>= 3.1.3'
gem 'sass', '>= 3.1.10'
gem 'compass-colors', '0.9.0'
gem 'fancy-buttons', '1.1.1'
gem 'kaminari'
gem 'mustache'
gem 'poirot', :git => 'git://github.com/dcu/poirot.git'


# mongodb
gem 'bson', '1.4.0'
gem 'bson_ext', '1.4.0'

gem 'mongo', '1.4.0'
gem 'mongoid', :git => 'git://github.com/mongoid/mongoid.git', :branch => '2.4.0-stable'

gem 'mongoid_ext', :git => 'git://github.com/dcu/mongoid_ext.git'

gem 'mongo_store', :git => 'https://github.com/Houdini/mongo_store.git'
#gem 'redis'
#gem 'redis-store'
#gem 'redis-rails'

# utils
gem 'whatlanguage', '1.0.0'
gem 'uuidtools', '~> 2.1.1'
gem 'magent', '0.6.2'
gem 'bug_hunter', :git => 'git://github.com/ricodigo/bug_hunter.git'

gem 'goalie', '~> 0.0.4'
gem 'dynamic_form'
gem 'rinku', '~> 1.2.2', :require => 'rails_rinku'

gem 'rack-recaptcha', '0.2.2', :require => 'rack/recaptcha'

gem 'twitter-text', '1.1.8'
gem 'twitter_oauth'
gem 'social_widgets', :git => 'https://git.gitorious.org/social_widgets/social_widgets.git'
gem 'stripe'
gem 'pdfkit' # apt-get install wkhtmltopdf

gem 'geoip'
gem 'rubyzip', '0.9.4', :require => 'zip/zip'

gem 'newrelic_rpm'

# authentication
gem 'omniauth', '~> 0.3.0'
gem 'oa-openid', '~> 0.3.0', :require => 'omniauth/openid'
gem 'oa-oauth', '~> 0.3.0', :require => 'omniauth/oauth'

gem 'multiauth', :git => 'http://github.com/dcu/multiauth.git'

gem 'orm_adapter'
gem 'devise', '~> 1.4.0'

gem 'whenever', :require => false
gem 'rack-ssl', :require => false

gem 'state_machine', '1.1.2'

gem 'xapian-ruby', '1.2.7.1'
gem 'xapit', :git => 'git://github.com/kuadrosx/xapit.git'
group :assets do
  gem 'compass-rails'
  gem 'compass'
  gem 'sass-rails', "  ~> 3.2.0"
  gem 'uglifier'
end
gem 'yui-compressor'
gem 'jquery-rails'

group :deploy do
  gem 'capistrano', '2.9.0', :require => false
  gem 'ricodigo-capistrano-recipes', '~> 0.1.3', :require => false
  gem 'unicorn', '4.1.1', :require => false
  gem 'therubyracer'
end

group :scripts do
  gem 'eventmachine', '~> 0.12.10'
  gem 'em-websocket', '~> 0.3.0'
  gem 'twitter', '1.7.2'
end

group :test do
  gem 'capybara'
  gem 'capybara-webkit'
  gem 'launchy'
  gem 'ffaker'
  gem 'simplecov'
  gem 'autotest'
  gem 'fabrication'
end

group :development do
  gem 'pry'
  gem 'pry-rails'
  gem 'database_cleaner'
  gem 'rspec', '>= 2.0.1'
  gem 'rspec-rails', '>= 2.0.1'
  gem 'remarkable_mongoid', '>= 0.5.0'
  gem 'hpricot'
  gem 'ruby_parser'
  gem 'niftier-generators', '0.1.2'
  gem 'ruby-prof'
  gem 'tunnlr_connector', :git => 'git://github.com/dcu/tunnlr_connector.git', :branch => 'patch-1', :require => 'tunnlr'
end


================================================
FILE: INSTALL_ON_PRODUCTION
================================================
== SERVER SIDE

1. add a user with sudo permissions
    sudo adduser deploy

2. edit sudo settings
    $ sudo visudo
    and add:

3. configure and upload config/shapado.yml to /etc/shapado.yml

---------------- copy from here -------------
Defaults    env_keep += "RAILS_ROOT"
Defaults    secure_path = "/usr/local/rvm/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

app     ALL=(ALL) NOPASSWD: ALL
---------------------------------------------

    NOTE: you can revoke sudo permissions after installing the application


== CLIENT SIDE

1. Download the sources:

    $ git clone git://gitorious.org/shapado/shapado.git
    $ cd shapado/

2. Configure the application

    $ cp config/shapado.sample.yml config/shapado.yml
    $ cp config/mongoid.sample.yml config/mongoid.yml

    edit shapado.yml

3. Install dependencies

    $ bundle install

4. Install required Gems

    $ sudo gem install capistrano ricodigo-capistrano-recipes
    $ cp config/deploy.rb.sample config/deploy.rb

    edit and configure config/deploy.rb (usually you just need to change the roles)

5. Install server dependencies

    $ ricodigo-install-server <server ip> <deploy user>

    NOTE: if you entered user/password for mongodb you have to add it on server:
    $ mongo --eval 'db.addUser("<THE USER>","<THE PASSWORD>", false)' shapado-production

6. Setup your deployment server

    $ cap production deploy:setup

7.  Deploy
    $ cap production bootstrap
    $ cap production bluepill:init
    $ cap production magent:setup
    $ cap production magent:init

    $ cap production websocket:setup
    $ cap production websocket:init

    $ cap production deploy


================================================
FILE: README
================================================
== Dependencies

- git >= 1.5
- ruby >= 1.9.2
- rubygems >= 1.3.7
- mongodb >= 1.7
- ruby on rails 3

== Install Dependencies

sudo gem install bundler

== Getting Started

1. Download the sources:

    git clone git://gitorious.org/shapado/shapado.git

    cd shapado/

2. Configure the application

    cp config/shapado.sample.yml config/shapado.yml
    cp config/mongoid.sample.yml config/mongoid.yml
    cp config/auth_providers.sample.yml config/auth_providers.yml

    edit shapado.yml and auth_providers.yml

    Go to https://rpm.newrelic.com/ and create an account, then:
    cp config/shapado.yml.sample config/newrelic.yml

    If you don't want to use newrelic, just comment it out in the Gemfile.

    Go to https://rpm.newrelic.com/ and create an account, then:
    cp config/shapado.yml.sample config/newrelic.yml

    If you don't want to use newrelic, just comment it out in the Gemfile.

3. Install dependencies

    bundle install

4. Load default data

    rake bootstrap RAILS_ENV=development

5. Add default subdomain to /etc/hosts, for example:

    "0.0.0.0 localhost.lan group1.localhost.lan group2.localhost.lan"

6. Start the server

    rails server -e development

7. When running shapado in production, you need to run:

    jammit

== Postfix config

add the following text to /etc/aliases
    shapado: "|/usr/local/rvm/bin/rvm 1.9.2 exec PATH/to/shapado/script/handle_email"

in /etc/postfix/main.cf
    default_privs = shapado

then type
    sudo newaliases



Follow us on:

* http://twitter.com/shapado

* http://identi.ca/shapado

* http://blog.ricodigo.com/shapado

Talk to us at:

* irc://irc.freenode.org/shapado

* http://shapado.com/chat

* contact \aT/ shapado d0t com

Report bugs at http://shapado.com and use the tags "bug" or "feature-request"



Happy hacking!



================================================
FILE: Rakefile
================================================
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.

require File.expand_path('../config/application', __FILE__)
require 'rake'

Shapado::Application.load_tasks


================================================
FILE: Shapado.prj
================================================
<?xml version="1.0" encoding="ASCII"?>
<!DOCTYPE PRJ SYSTEM "Shapado.dtd">
<PRJ>
  <Project_Information>
    <Use_Relative_Dir>1</Use_Relative_Dir>
    <Relative_to_Project_File>1</Relative_to_Project_File>
    <Include_Sub_Dir>0</Include_Sub_Dir>
    <Create_Tagfile>0</Create_Tagfile>
    <Filter></Filter>
    <CTags_Support>0</CTags_Support>
    <Word_File></Word_File>
    <Project_Directory>/home/fra/Documentos/Shapado/dgfranciscos-shapado</Project_Directory>
    <Tag_File></Tag_File>
  </Project_Information>
  <Project_ID>
    <Signature>UE Proj: v.1</Signature>
  </Project_ID>
</PRJ>


================================================
FILE: Shapado.ubuntu.fra.pui
================================================
<?xml version="1.0" encoding="ASCII"?>
<!DOCTYPE PRJ SYSTEM "Shapado.ubuntu.fra.dtd">
<PRJ>
  <Project_Information>
    <Working_Time>                                                             295</Working_Time>
    <Project_Start>3900000001000000130000001A0000000A0000006E0000000500000049010000000000004F7F0000B0B9FFFFFFFFFFFFC0B7B0030000000089</Project_Start>
  </Project_Information>
  <Active_Settings>
    <Active_File_Display_Mode>                                                              -1</Active_File_Display_Mode>
  </Active_Settings>
</PRJ>


================================================
FILE: UPGRADE
================================================
run 'rake fixall' to upgrade your database



================================================
FILE: VERSION
================================================
4.1.0


================================================
FILE: app/assets/javascripts/app/initializers/assets.js
================================================
/*THIS FILE IS AUTO-GENERATED FOR DEV, DO NOT MODIFY IT. MODIFY config/assets.yml INSTEAD*/
 jsassets = {"modernizrdev":["/packages/modernizrdev.js"],"initdev":["/packages/initdev.js"],"websocket":["/packages/websocket.js"],"json":["/packages/json.js"],"jqueryautovideo":["/packages/jqueryautovideo.js"],"mobile":["/packages/mobile.js"],"facebook":["/packages/facebook.js"],"jpicker":["/packages/jpicker.js"],"geolocation":["/packages/geolocation.js"],"jqmath":["/packages/jqmath.js"],"codemirror":["/packages/codemirror.js"],"modernizr":["/packages/modernizr_7.js"],"base":["/packages/base_7.js"],"extra":["/packages/extra_1.js"]}; cssassets = {"base":["/packages/base.css"],"jqueryui":["/packages/jqueryui.css"],"jpicker":["/packages/jpicker.css"],"mobile":["/packages/mobile.css"],"jqmath":["/packages/jqmath.css"],"codemirror":["/packages/codemirror.css"]};


================================================
FILE: app/assets/javascripts/app/initializers/init_dev.js
================================================
// any initializing code from init_modernizer.js should go here for dev

$(document).ready(function() {
  Jqmath.initialize();
  ShapadoSocket.initialize();
  $('.auto-link').autoVideo();
  Form.initialize();
  Modernizr.load({
      test: $('meta[data-has-js]').length > 0,
      yep: $('meta[data-theme-js]').attr('data-theme-js')
    })
})


================================================
FILE: app/assets/javascripts/app/initializers/init_modernizr.js
================================================
//needed for IE
fix_html5_on_ie();
Modernizr.load([{
  load: '//ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js',
  callback: function() {
    if (!window.jQuery) {
      Modernizr.load('/javascripts/vendor/jquery-1.6.4.js');
    }
  },
  complete: function() {
    Modernizr.load([{
      test: window.JSON,
      nope: jsassets.json
    }, {
      test: navigator.geolocation,
      nope: jsassets.geolocation
    }, {
      load: jsassets.base,
      complete: function(){
        if(typeof(Jqmath)!='undefined')
          Jqmath.initialize();
      }
    }, {
        load: cssassets.jqueryui
    }]);
   $(document).ready(function() {
     Modernizr.load([{
      test: ($('.offline').length == 0 || (location.pathname != '/' && location.pathname.indexOf('/questions' != 0))),
      yep: jsassets.extra
    }, {
      test: typeof(window.WebSocket)!=='undefined',
      nope: jsassets.websocket,
      complete: function() {
        ShapadoSocket.initialize();
        }
    }, {
      test: $('meta[data-has-js]').length > 0,
      yep: $('meta[data-theme-js]').attr('data-theme-js')
    }, {
      test: $('meta[data-js=show]').length > 0 && $('.auto-link').length > 0,
      yep: jsassets.jqueryautovideo,
      complete: function(){
        if($.fn.autoVideo)
          $('.auto-link').autoVideo();
      }
    }, {
       test: $("input[type=color]").length>0,
       yep: jsassets.jpicker,
       complete: function(){
        if($.jPicker)
          Form.initialize();
       }
       }, {
          test: $("input[type=color]").length>0,
          yep: cssassets.jpicker
     }])
   })
  }
}]);

function fix_html5_on_ie() {
  document.createElement('header');
  document.createElement('footer');
  document.createElement('section');
  document.createElement('aside');
  document.createElement('nav');
  document.createElement('article');
  document.createElement('hgroup');
}

================================================
FILE: app/assets/javascripts/app/initializers/retag.js
================================================
$(document).ready(function() {
  $('.retag-link').live('click',function(){
    var link = $(this);
    link.parent('.retag').hide();
    link.parents('.tag-list').find('.tag').hide();
    $.ajax({
      dataType: "json",
      type: "GET",
      url : link.attr('href'),
      extraParams : { 'format' : 'js'},
      success: function(data) {
        if(data.success){
          link.parents(".tag-list").before(data.html);
          $(".chosen-retag").ajaxChosen({
            method: 'GET',
            url: '/questions/tags_for_autocomplete.js',
            dataType: 'json'
          }, function (data) {
            var terms = {};
            $.each(data, function (i, val) {
              console.log('i: '+i)
              console.log('val: '+val)
              terms[val["value"]] = val["caption"];
            });

          return terms;
        });
        } else {
            Messages.show(data.message, "error");
            if(data.status == "unauthenticate") {
              window.location="/users/login"
            }
        }
      }
    });
    return false;
  });

  $('.retag-form').live('submit', function() {
    form = $(this);
    var button = form.find('input[type=submit]');
    button.attr('disabled', true)
    $.ajax({url: form.attr("action")+'.js',
            dataType: "json",
            type: "POST",
            data: form.serialize()+"&format=js",
            beforeSend: function(jqXHR, settings){

            },
            success: function(data, textStatus) {
                if(data.success) {
                    var tags = $.map(data.tags, function(n){
                        return '<li><a class="tag" rel="tag" href="/questions/tags/'+n+'">'+n+'</a></li>'
                    })
                    form.next('.tag-list').find('li a.tag').remove();
                    form.next('.tag-list').prepend($.unique(tags).join(''));
                    form.remove();
                    console.log(tags.join(''))
                    $('.retag').show();
                    Messages.show(data.message, "notice");
                } else {
                    Messages.show(data.message, "error")
                    if(data.status == "unauthenticate") {
                        window.location="/users/login";
                    }
                }
            },
            error: Messages.ajax_error_handler,
            complete: function(XMLHttpRequest, textStatus) {
                button.attr('disabled', false);
            }
    });
    return false;
  });

  $('.cancel-retag').live('click', function(){
      var link = $(this);
      var form = link.parents('form');
      form.next('.tag-list').find('.tag').show();
      form.next('.tag-list').find('.retag').show();
      form.remove();
      return false;
  });
});


================================================
FILE: app/assets/javascripts/app/initializers/search.js
================================================
(function($){
  $.fn.searcher = function(options) {
    var defaults = { timeout: 500,
      threshold: 100,
      minLength: 1,
      extraParams: {},
      url: "",
      target: $("body"),
      behaviour : "live",
      success: function(data) {},
      before_query: function(target) {},
      after_reset: function(target) {},
    }

    var options =  $.extend(defaults, options);

    return this.each(function() {
      var timer = null;
      var last = "";
      var settings = options;
      var self = $(this);
      var extraParams = [];
      var cache = settings.target.html();

      if(typeof settings.fields == "undefined") {
        settings.fields = $(this).find("input[type=text],textarea");
      }

       /*HACK?*/
      for(var property in settings.extraParams) {
        extraParams.push({ name : property, value : settings.extraParams[property]});
      }

      var query = function() {
        settings.before_query.call(self, settings.target);

        $.ajax({
          url: settings.url,
          dataType: "json",
          type: "GET",
          data: $.merge(settings.fields.serializeArray(), extraParams),
          success: function(data) {
            settings.target.empty();
            settings.target.append(data.html);
            settings.success(data);
          }
        });
      }

      $.each(settings.fields, function(){
        if(this.value) {
          query();
          return false;
        }
      });

      var live = function() {
        $.each(settings.fields, function(){
          var timer = null;
          $(this).keyup(function() {
            if(!($(this).val().length <= settings.minLength)){
              if(this.value != last) {
                if (timer){
                  clearTimeout(timer);
                }
                last = this.value;
                timer = setTimeout(query, settings.timeout);
              }
            } else {
              settings.target.empty();
              settings.target.append(cache);
              settings.after_reset.call(self, settings.target);
            }
          });
        });
      }

      var focusout = function() {
        $.each(settings.fields, function(){
          $(this).blur(function() {
            if (!($(this).val().length <= settings.minLength)) {
              if(this.value != last) {
                query();
              }
            } else {
              settings.target.empty();
              settings.target.append(cache);
              settings.after_reset.call(self, settings.target);
            }
          });
        });
      }

      switch(settings.behaviour) {
        case "live":
          live();
          break;
        case "focusout":
          focusout();
          live();
          break;
      }
    });
  }
})(jQuery);


================================================
FILE: app/assets/javascripts/app/initializers/shapado_toolbar.js
================================================
(function($){
  $.fn.shapadoToolbar = function(options) {
    var defaults = {
      formContainer: ".panel-forms",
      afterFetchForm: function(link,form) {}
    }

    var options =  $.extend(defaults, options);

    return this.each(function() {
      var toolbar = $(this);
      var formContainer = toolbar.find(options.formContainer);
      toolbar.delegate("a.show_form", "click", function(event) {
        var link = $(this);
        var id = link.attr("data-lazy-form") || link.attr("id");
        var lazy = link.attr("data-lazy") == "1";

        var form = formContainer.find("."+id);

        if(link.hasClass("active")){
          link.removeClass("active");
          form.slideUp();
          return false;
        }

        var actionsContent = link.parents("ul");
        formContainer.find("form").slideUp();

        if(lazy && form.length < 1) {
          var href = link.attr('href');
          if(!link.hasClass('busy')){
            link.addClass('busy');
            $.getJSON(href+'.js', function(data){
              if(data.status=='unauthenticate'){
                Auth.startLoginDialog();
                return false;
              }
              var nform = $(data.html);
              formContainer.prepend(nform);
              nform.slideDown("slow");
              nform.show();
              link.removeClass('busy');
              options.afterFetchForm.call(toolbar, link, nform);
              actionsContent.find("li a").removeClass("active");
              link.addClass("active");
            });
          }
        } else {
          form.slideDown("slow");
          actionsContent.find("li a").removeClass("active");
          link.addClass("active");
        }
        return false;
      });

      formContainer.delegate("form a.cancel", "click", function(event) {
        $(this).parents('form').slideUp();
        toolbar.find("ul li a").removeClass("active");
        return false;
      });
    });
  }
})(jQuery);


================================================
FILE: app/assets/javascripts/app/initializers/single/question.js
================================================
$(document).ready(function() {
//   FIXME: why is it here?
//   Questions.initialize();
});


================================================
FILE: app/assets/javascripts/app/main.js
================================================

$(document).ready(function() {
  var $body = $(document.body);
  Loader.initialize($body, true);
});


================================================
FILE: app/assets/javascripts/app/modules/activities.js
================================================
Activities = function(){
  var self = this;

  function initialize() {
  }

  function createOnIndex(data) {
    Utils.log("[create] activity");

    $.get('/activities/'+data.object_id, {notif: 1}, function(data) {
      $("ul.notifications-list li.notification-title").after("<li>"+data+"</li>");

      var counter = $("ul.notifications-list li:first a#notification-counter");
      counter.text(parseInt(counter.text())+1);
    });
  }

  return {
    initialize:initialize,
    createOnIndex:createOnIndex
  }
}();


================================================
FILE: app/assets/javascripts/app/modules/answers.js
================================================
Answers = function(){
  var self = this;

  function initialize($body) {
    if($body.hasClass("edit")) {
      Editor.setup($(".markdown_editor, .wysiwyg_editor"));
    } else if($body.hasClass("show")) {
      Votes.initialize_on_question();
      Comments.initialize_on_question();
    }
  }

  function initializeOnQuestion() {
    var add_another_answer = $('#add_another_answer');
    if(add_another_answer.length > 0){
      var form = $('.add_answer');
      form.hide();
      add_another_answer.click(function() {
        add_another_answer.hide();
        form.show();
        return false;
      });
    }
  }

  function createOnIndex(data) {
  }

  function createOnShow(data) {
    var is_there = $('.'+data.object_id).length;
    if(is_there==0){
      alert(is_there);
      $(".answers-list").prepend(data.html);
      $("article.answer."+data.object_id).effect("highlight", {}, 3000);
      Ui.hide_comments_form();
    }
  }

  function updateOnIndex(data) {

  }

  function updateOnShow(data) {
    $("article.answer."+data.object_id).html(data.html);
    $("article.answer."+data.object_id).effect("highlight", {}, 3000);
  }

  function vote(data) {
    $("article.answer."+data.object_id+" li.votes_average").text(data.average);
  }

  return {
    initialize:initialize,
    initializeOnQuestion:initializeOnQuestion,
    createOnIndex:createOnIndex,
    createOnShow:createOnShow,
    updateOnIndex:updateOnIndex,
    updateOnShow:updateOnShow,
    vote:vote
  }
}();


================================================
FILE: app/assets/javascripts/app/modules/app_config.js
================================================
AppConfig = function(){
  var self = this;

  function initialize() {
    var config = $("#appconfig");
    if(config.length > 0) {
      $.each(config[0].attributes, function() {
        var att = this;
        var m = att.name.match("^data-(.+)");
        if(m && m[1]) {
          AppConfig[m[1]] = att.value;
        }
      });
    }
  }

  return {
    initialize:initialize
  }
}();


================================================
FILE: app/assets/javascripts/app/modules/authentication.js
================================================
Auth = function() {
  var self = this;

  function initialize() {
    $('.auth-provider').live("click", function(e){
      e.preventDefault();
      var authUrl = $(this).attr('href');
      openPopup(authUrl);
    });

    $('#openid_url').parents('form').submit(function(){
      var openid = $('#openid_url').val();
      openid = openid.replace('http://','');
      openid = openid.replace('https://','');
      $('#openid_url').val(openid)
    });
  }

  function positionDropdown() {
    if(Ui.offline() && !Ui.notMember()){
      $('.providers-list').show().offset({left: $('.offline').offset().left+$('.offline').width()-$('.providers-list').width()}).hide();
        //$('.providers-list').show().offset({left: $('body').width()/2-$('#column2').width()/2}).css({width: '290px'});
    }
  }

  function dropdownToggle() {
    $('[data-toggle-dropdown]').click(function(){
      var toggleClass = $(this).data('toggle-dropdown');
      $('.dropdown-form').addClass('hidden');
      var toggleEle = $('.'+toggleClass).toggleClass('hidden');
      positionDropdown();
      $('.providers-list').show();
      return false;
    })
  }

  function openPopup(authUrl) {
    var pparg;
    if(authUrl.indexOf('{')!=-1){
      authUrl = authUrl.split('=')[1];
      $('[data-toggle-dropdown=dropdown-signin-openid]').trigger('click');
      $('#openid_url').val(authUrl);
      return false;
    } else {
      $.cookie('pp', 1);
      (authUrl.indexOf('?')==-1)? pparg = '?pp=1' : pparg = '&pp=1'
      window.open(authUrl+pparg, 'openid_popup', 'width=700,height=500');
      $('#login_dialog').dialog('close');
    }
  }

  function startLoginDialog(title,join){
    if(Ui.notMember()){
        var title = $('#join_dialog').attr('data-title');
        $('#join_dialog').dialog({title: title, modal: true, resizable: false})
    } else {
        $('.offline li:first').trigger('click');
        Messages.show($('.offline').data('signin-notice'), 'error', 5000 );
        return false;
    }
  }

  return {
    initialize:initialize,
    positionDropdown:positionDropdown,
    dropdownToggle:dropdownToggle,
    openPopup:openPopup,
    startLoginDialog:startLoginDialog
  }
}();


================================================
FILE: app/assets/javascripts/app/modules/comments.js
================================================
Comments = function() {
  var self = this;

  function initializeOnQuestion(data) {
    $('.comment-votes form.comment-form button.vote').hide();
    var forms = $('.question_comment_form, .answer_comment_form');
    forms.find('.buttons').hide();

    forms.delegate('textarea', 'focus', function() {
      var form = $(this).parents('form');
      form.find('.buttons').show();
      if(!form.find('textarea').hasClass(form.data('editor'))) {
        form.find('textarea').addClass(form.data('editor'));
        Editor.setup(form.find('textarea'));
      }
    });

    $.each($("a.toggle_comments"), function() {
      var l = $(this);
      var n = l.nextAll("article.read");
      var s = n.length;
      if(s < 5) {
        l.hide();
      } else {
        l.show();
        var t = l.find('.counter').text(s);
        l.text(t);
        n.hide();
        l.parents('.comments').find("article.comment:last").show();
      }
    });

    $("a.toggle_comments").click(function() {
      $(this).nextAll("article.read").toggle();
      return false;
    });

    $(".content-panel").on("hover", ".comment",  function(handlerIn, handlerOut) {
      var show = (handlerIn.type == "mouseenter");
      $(this).find(".comment-votes form.comment-form button.vote").toggle(show);
    });

    $(".content-panel").on("submit", ".comment-votes .comment-form",  function(event) {
      var form = $(this);
      var btn = form.find('button');
      btn.attr('disabled', true);
      btn.hide();
      $.post(form.attr("action"), form.serialize()+"&"+btn.attr("name")+"=1", function(data){
        if(data.success){
          if(data.vote_state == "destroyed") {
            btn.addClass("vote");
            btn.hide();
          } else {
            btn.removeClass("vote");
            btn.show();
          }
          btn.parents(".comment-votes").children(".votes_average").html(data.average);
          Messages.show(data.message, "notice");
        } else {
          Messages.show(data.message, "error");
        }
        btn.attr('disabled', false);
        btn.show();
      }, "json");
      return false;
    });

    $(".Question-commentable").click(showCommentForm);

    $(".content-panel").delegate(".Answer-commentable, .Comment-commentable", "click", showCommentForm);

    $('.cancel_comment').on('click', function(){
      var form = $(this).parents('form');
      form.find('.buttons').hide();
      var htmlarea = form.find('.jHtmlArea')
      if(htmlarea.length > 0) {
        htmlarea.remove();
        form.find('.markdown').append('<textarea class="text_area" cols="auto" id="comment_body" name="comment[body]" placeholder="Add comment" rows="auto"></textarea>');
      } else {
        form.find('.markdown_toolbar').remove();
        form.find('textarea').removeClass('markdown_editor')
      }
      return false;
    });
  }

  function showCommentForm() {
      var link = $(this);
      var answer_id = link.attr('data-commentable');
      var form = $('form[data-commentable='+answer_id+']');
      var textarea = form.find('textarea');
      form.slideToggle();
      textarea.focus();
      var viewportHeight = window.innerHeight ? window.innerHeight : $(window).height();
      var top = form.offset().top - viewportHeight/2;

      $('html,body').animate({scrollTop: top}, 1000);
      return false;
  }

  function createOnIndex(data) {
  }

  function createOnShow(data) {
    var comment = $('#'+data.object_id);
    if(comment.length==0){
      var commentable = $('.'+data.commentable_id);
      var comments = commentable.find('.comments');
      comments.append(data.html);
      Effects.fade(comment);
    }
  }

  function updateOnIndex(data) {

  }

  function updateOnShow(data) {
    var comment = $('#'+data.object_id);
    if($.trim(comment.html()) != data.html){
      comment.replaceWith(data.html);
      Effects.fade(comment);
    }
  }

  function vote(data) {
  }

  return {
    initializeOnQuestion:initializeOnQuestion,
    showCommentForm:showCommentForm,
    createOnIndex:createOnIndex,
    createOnShow:createOnShow,
    updateOnIndex:updateOnIndex,
    updateOnShow:updateOnShow,
    vote:vote
  }
}();


================================================
FILE: app/assets/javascripts/app/modules/editor.js
================================================
Editor = function() {
  var self = this;

  function initialize() {
    setupEditor();
    setupWysiwyg();
    $(".markdown code").addClass("prettyprint");

    $("textarea").focus(function() {
      if(!window.onbeforeunload) {
        window.onbeforeunload = function() {
          var filled = false;
          $('textarea').each(function(){
            if($.trim($(this).val())!=''){
              filled = true;
            }
          })
          if(filled) {return I18n.on_leave_page; }
          return null;
        }
      }
    });
  }

  function setup(editor) {
    if(editor.hasClass("wysiwyg_editor")) {
      setupWysiwyg(editor);
    } else if(editor.hasClass("markdown_editor")) {
      setupEditor(editor);
    }
  }

  function setupWysiwyg(editor) {
    var editor = editor || $(".wysiwyg_editor");
    if(!editor || editor.length == 0)
      return;

    editor.htmlarea({
      toolbar: [
        ["html"], ["bold", "italic", "underline", "strikethrough", "|", "subscript", "superscript"],
        ["increasefontsize", "decreasefontsize"],
        ["orderedlist", "unorderedlist"],
        ["indent", "outdent"],
        ["justifyleft", "justifycenter", "justifyright"],
        ["link", "unlink", "image", "horizontalrule"],
        ["p", "h1", "h2", "h3", "h4", "h5", "h6"],
        ["cut", "copy", "paste"],
        [{
            css: "removeformat",
            text: "Remove Format",
            action: function(btn) {
              this.removeFormat();
            }
        }]
      ]
    });
  }

  function setupEditor(editor) {
    var editor = editor || $(".markdown_editor");
    if(!editor || editor.length == 0){
      return;
    }

    var converter = new Showdown.converter;
    var timer_id = null;

    var converter_callback = function(value) {
      var preview = $('.markdown_preview');
      if(preview.length > 0){
        $('.markdown_preview')[0].innerHTML = converter.makeHtml(value);
        //addToLocalStorage(location.href, 'markdown_editor', value);
        $('.markdown_preview.markdown p code').addClass("prettyprint");
        if(timer_id)
          clearTimeout(timer_id);

        timer_id = setTimeout(function(){
          prettyPrint();
        }, 500);
      }
    }

    var textarea = editor.TextArea({
      change: converter_callback
    });

    var toolbar = $.Toolbar(textarea, {
      className: "markdown_toolbar"
    });

    //buttons
    toolbar.addButton('Italics',function(){
        this.wrapSelection('*','*');
    },{
      id: 'markdown_italics_button'
    });

    toolbar.addButton('Bold',function(){
        this.wrapSelection('**','**');
    },{
      id: 'markdown_bold_button'
    });

    toolbar.addButton('Link',function(){
      var selection = this.getSelection();
      var response = prompt('Enter Link URL','');
      if(response == null)
          return;
      this.replaceSelection('[' + (selection == '' ? 'Link Text' : selection) + '](' + (response == '' ? 'http://link_url/' : response).replace(/^(?!(f|ht)tps?:\/\/)/,'http://') + ')');
    },{
      id: 'markdown_link_button'
    });

    toolbar.addButton('Image',function(){
      var selection = this.getSelection();
      var response = prompt('Enter Image URL','');
      if(response == null)
          return;
      this.replaceSelection('![' + (selection == '' ? 'Image Alt Text' : selection) + '](' + (response == '' ? 'http://image_url/' : response).replace(/^(?!(f|ht)tps?:\/\/)/,'http://') + ')');
    },{
      id: 'markdown_image_button'
    });

    toolbar.addButton('Heading',function(){
      var selection = this.getSelection();
      if(selection == '')
          selection = 'Heading';
      this.replaceSelection('##'+selection+'##');
    },{
      id: 'markdown_heading_button'
    });

    toolbar.addButton('Unordered List',function(event){
      this.collectFromEachSelectedLine(function(line){
          return event.shiftKey ? (line.match(/^\*{2,}/) ? line.replace(/^\*/,'') : line.replace(/^\*\s/,'')) : (line.match(/\*+\s/) ? '*' : '* ') + line;
      });
    },{
      id: 'markdown_unordered_list_button'
    });

    toolbar.addButton('Ordered List',function(event){
      var i = 0;
      this.collectFromEachSelectedLine(function(line){
          if(!line.match(/^\s+$/)){
              ++i;
              return event.shiftKey ? line.replace(/^\d+\.\s/,'') : (line.match(/\d+\.\s/) ? '' : i + '. ') + line;
          }
      });
    },{
      id: 'markdown_ordered_list_button'
    });

    toolbar.addButton('Block Quote',function(event){
      this.collectFromEachSelectedLine(function(line){
          return event.shiftKey ? line.replace(/^\> /,'') : '> ' + line;
      });
    },{
      id: 'markdown_quote_button'
    });

    toolbar.addButton('Code Block',function(event){
      this.collectFromEachSelectedLine(function(line){
          return event.shiftKey ? line.replace(/    /,'') : '    ' + line;
      });
    },{
      id: 'markdown_code_button'
    });

    toolbar.addButton('Latex', function(event) {
      this.wrapSelection('$$','$$');
    }, {
      id: 'markdown_latex_button'
    });

    toolbar.addButton('Help',function(){
      window.open('http://daringfireball.net/projects/markdown/dingus');
    },{
      id: 'markdown_help_button'
    });
  }

  return {
    initialize:initialize,
    setup:setup,
    setupWysiwyg:setupWysiwyg,
    setupEditor:setupEditor
  }
}();



================================================
FILE: app/assets/javascripts/app/modules/effects.js
================================================
Effects = function(){
  var self =this;

  function initialize() {
  }

  function fade(object) {
    if(typeof object != "undefined") {
      object.fadeOut(400, function() {
        object.fadeIn(400)
      });
    }
  }

  return {
    initialize:initialize,
    fade:fade
  }
}();


================================================
FILE: app/assets/javascripts/app/modules/form.js
================================================
Form = function() {
  var self = this;

  function initialize() {
    if(!Modernizr.inputtypes.color) {
      $("input[type=color]").jPicker({
      window: {
                expandable: true,
                position: { x: 'screenCenter', y: 'center'}
              },
      images: { clientPath: '/images/jpicker/' }
      });
      $("input[type=color]").hide();
    }
  }

  return {
    initialize:initialize
  }
}();


================================================
FILE: app/assets/javascripts/app/modules/geo.js
================================================
Geo = function() {
  var self = this;

  function initialize() {
    $(document.body).delegate('#question_title', 'click', Geo.localize);
    $(document.body).delegate('#new_answer', 'hover', Geo.localize);
  }

  function localize() {
    if($('meta[geo_local]').length==1){
      if($('meta[data-geo=1]').length==0){
        $('body').append('<meta data-geo=1>');
        navigator.geolocation.getCurrentPosition(function(position){
          $('.lat_input').val(position.coords.latitude)
          $('.long_input').val(position.coords.longitude)
        }, function(){});
      }
    }
  }

  return {
    initialize:initialize,
    localize:localize
  }
}();


================================================
FILE: app/assets/javascripts/app/modules/groups.js
================================================
Groups = function() {
  var self = this;

  function initialize($body) {
    if($body.hasClass("index")) {
      initializeOnIndex($body);
    }
    if($body.hasClass("manage-layout")) {
      initializeOnEdit($body);
    }
  }

  function initializeOnEdit($body) {
      $('#group_enable_latex').change(function(){
        $('#group_enable_mathjax').removeAttr('checked')
      })
      $('#group_enable_mathjax').change(function(){
        $('#group_enable_latex').removeAttr('checked')
      })
  }

  function initializeOnManageProperties($body) {
    $('#group_language').chosen();
    $('#group_languages').chosen();
  }

  function initializeOnIndex($body) {
    $("#filter_groups").find("input[type=submit]").hide();

    $("#filter_groups").searcher({ url : "/groups.js",
                                target : $("#groups"),
                                behaviour : "live",
                                timeout : 500,
                                extraParams : { 'format' : 'js' },
                                success: function(data) {
                                  $('#additional_info .pagination').html(data.pagination);
                                }
    });
  }

  function join(link){
          var href = $(link).attr('href');
          $.ajax({
            type: 'POST',
            url: href,
            dataType: 'json',
            success: function(data){
                      Messages.show(data.message, "notice");
                      $('#join_dialog').dialog('close');
                      $('.not_member').remove();
            }
          });
          return false;
  }

  return {
    initialize:initialize,
    initializeOnEdit:initializeOnEdit,
    initializeOnManageProperties:initializeOnManageProperties,
    initializeOnIndex:initializeOnIndex,
    join:join
  }
}();



================================================
FILE: app/assets/javascripts/app/modules/invitations.js
================================================
Invitations = function() {
  var self = this;

  function initialize() {
  }

  return {
    initialize:initialize
  }
}();


================================================
FILE: app/assets/javascripts/app/modules/jqmath.js
================================================
Jqmath = function() {
  var self = this;

  function initialize() {
    Modernizr.load([{
      test: $('meta[data-jqmath]').length > 0 && $('.markdown').text().indexOf('$$')>-1,
      yep: $.merge($.merge([],eval($('meta[data-jqmath]').data('jsassets'))||[]),eval($('meta[data-jqmath]').data('cssassets'))||[])
    }]);
  }

  return {
    initialize:initialize
  }
}();


================================================
FILE: app/assets/javascripts/app/modules/layout_editor.js
================================================
LayoutEditor = function() {
  var self = this, $sortable;

  function initialize() {
    if(window.location.search.match(/edit_layout=1/)) {
      start();
    }
  }

  function start() {
    $sortable = $("#columns").sortable({
      connectWith: '#columns',
      cursor: 'move',
      stop: dropHandler
    });
  }

  function stop() {
  }

  function dropHandler(ev, ui) {
    var cols = [];
    $.each($("#columns").children("section"), function() {
      cols.push("columns[]="+$(this).attr("id"));
    });

    $.ajax({
      url: '/groups/'+AppConfig.g+'/set_columns.js',
      data: cols.join("&"),
           dataType: 'json',
           type: "POST",
           success: function(data) {
           }
    });
  }

  return {
    initialize:initialize,
    start:start,
    stop:stop,
    dropHandler:dropHandler
  }
}();


================================================
FILE: app/assets/javascripts/app/modules/loader.js
================================================
Loader = function() {
  var self = this;
  //only for ready
  function initialize($body, refreshed) {
    Updater.initialize($body);
    Ui.initialize();
    Messages.initialize();
    Auth.initialize();
    AppConfig.initialize();
    Geo.initialize();
    LocalStorage.initialize();
    Notifier.initialize();
    LayoutEditor.initialize();
    Loader.refresh($body, false);
  }

  //for Updater
  function refresh($body, refreshed) {
    if(refreshed) {
      Ui.initialize();
      Messages.initialize();
    }
    if($body.hasClass("questions-controller")) {
      Questions.initialize($body);
    } else if($body.hasClass("widgets-controller")) {
      Widgets.initialize($body);
    } else if($body.hasClass("users-controller")) {
      Users.initialize($body);
    } else if($body.hasClass("announcements-controller")) {
      Editor.initialize($body);
    } else if($body.hasClass("tags-controller")) {
      Tags.initialize($body);
    } else if($body.hasClass("pages-controller")) {
      Pages.initialize($body);
    } else if($body.hasClass("members-controller")) {
      Members.initialize($body);
    } else if($body.hasClass("groups-controller") ||
      $body.hasClass("admin-manage-controller")) {
      if($body.hasClass("content")) {
        Ui.initializeLangFields();
      }
      Groups.initialize($body);
    } else if($body.hasClass("themes-controller")) {
      Themes.initialize($body);
    } else if($body.hasClass("searches-controller")) {
      Searches.initialize($body);
    } else if($body.hasClass("answers-controller")) {
      Answers.initialize($body);
    }
    if($body.is(".users-controller.edit.application")) {
      Users.initializeOnShow($body);
    }
    if($body.is(".admin-manage-controller.properties.application.manage-layout") ||
      $body.is(".groups-controller.new.application") ||
      $body.is(".users-controller.edit.application")) {
      Groups.initializeOnManageProperties($body);
    }
    Invitations.initialize(); //FIXME: empty function
  }

  return {
    initialize:initialize,
    refresh:refresh
  }
}();


================================================
FILE: app/assets/javascripts/app/modules/local_storage.js
================================================
LocalStorage = function() {
  var self = this;

  function initialize() {
    if(Modernizr.localstorage) {
      loadTextareas();
      initializeTextAreas();
    }
  }

  function remove(key, id) {
    if(hasStorage()){
      var ls = localStorage[key];
      if(typeof(ls)=='string'){
        var storageArr = getObject(key);

        storageArr = $.map(storageArr, function(n, i){
            if(n.id == id){
              return null;
            } else {
                return n;
            }
        });
        setObject(key, storageArr);
      }
    }
  }

  function initializeTextAreas() {
    $("form").live('submit', function() {
      var textarea = $(this).find('textarea');
      remove(location.href, textarea.attr('id'));
      window.onbeforeunload = null;
    });

    $('textarea').live('keyup',function(){
      var value = $(this).val();
      var id = $(this).attr('id');
      add(location.href, id, value);
    });
  }

  function hasStorage(){
    if (Modernizr.localstorage
        && localStorage['setObject']
        && localStorage['getObject']){
      return true;
    } else {
        return false;
    }
  }

  function loadTextareas(){
     if(hasStorage() && localStorage[location.href]!=null && localStorage[location.href]!='null'){
         localStorageArr = getObject(location.href);
         $.each(localStorageArr, function(i, n){
             $("#"+n.id).val(n.value);
             $("#"+n.id).parents('form.commentForm').show();
             $("#"+n.id).parents('form.nestedAnswerForm').show();
         })
      }
  }

  function add(key, id, value){
    if(hasStorage()){
      var ls = localStorage[key];
      if($.trim(value)!=""){
        if(ls == null || ls == "null" || typeof(ls)=="undefined"){
            setObject(key,[{id: id, value: value}]);
        } else {
            var storageArr = getObject(key);
            var isIn = false;
            storageArr = $.map(storageArr, function(n, i){
                if(n.id == id){
                  n.value = value;
                  isIn = true;
                }
            return n;
          })
        if(!isIn)
          storageArr = $.merge(storageArr, [{id: id, value: value}]);
        setObject(key, storageArr);
      }
      } else {remove(key, id);}
    }
  }

  //private
  if(Modernizr.localstorage) {
    function setObject(key, value) {
      this.setItem(key, JSON.stringify(value));
    }

    function getObject(key) {
      return JSON.parse(this.getItem(key));
    }
  }

  return {
    initialize:initialize,
    remove:remove,
    initializeTextAreas:initializeTextAreas,
    hasStorage:hasStorage,
    loadTextareas:loadTextareas,
    add:add
  }
}();


================================================
FILE: app/assets/javascripts/app/modules/members.js
================================================
Members = function() {
  var self = this;

  function initialize(data) {
    //TODO use data-foo
    $("#filter_members").searcher({
      url : "/manage/members.js",
      target : $("#members"),
      behaviour : "live",
      timeout : 500,
      extraParams : { 'format' : 'js' },
      success: function(data) {
        $('.pagination').html(data.pagination)
      }
    });
    $('.filter_input').hide();
  }

  return {
    initialize:initialize
  }
}();


================================================
FILE: app/assets/javascripts/app/modules/messages.js
================================================
Messages = function() {
  var self = this;

  function initialize() {
    $("a#hide_announcement").click(function() {
      $(".announcement").fadeOut();
      $.get($(this).attr("href"), "format=js");
      return false;
    });
  }

  function show(message, t, delay) {
    $("#notifyBar").remove();
    $.notifyBar({
      html: "<div class='message "+t+"' style='width: 100%; height: 100%; padding: 5px'>"+message+"</div>",
      delay: delay||3000,
      animationSpeed: "normal",
      barClass: "flash"
    });
  }

  function ajaxErrorHandler(XMLHttpRequest, textStatus, errorThrown) {
    show("sorry, something went wrong.", "error");
  }

  return {
    initialize:initialize,
    show:show,
    ajaxErrorHandler:ajaxErrorHandler
  }
}();


================================================
FILE: app/assets/javascripts/app/modules/networks.js
================================================
Networks = function() {
  var self = this;

  function initialize(form) {
    form = form || $('form')
    form.find(".network-config").hide();

    form.find(".network-field").each(function(index, network_field) {
      network_field = $(network_field);
      var $network_select = network_field.find("select.network_select");

      network_field.delegate("a.save_network", 'click', function(){
        var entry = $(this).parents(".network-config-entry");
        var network = entry.find("input.network_name").val();

        entry.find("input").hide();
        entry.find(".text").empty().append(network);
        entry.find(".buttons").empty();

        return false;
      });

      network_field.delegate("a.cancel_network", 'click', function(){
        var entry = $(this).parents(".network-config-entry");
        var network = entry.find("input.network_name").val();
        entry.remove();

        $.each($network_select.find('option[data-picked="true"]'), function(i, v) {
          var opt = $(v);
          if(opt.text() == network) {
            opt.attr("data-picked", false);
            opt.css("color", "black");
            return;
          }
        });

          return false;
        });

        $network_select.change(function() {
          var networks = network_field.find(".networks");

          var opt = $(this).find("option:selected");
          if( opt.val() == "")
            return false;

          if(opt.attr("data-picked") == "true")
            return false;

          opt.attr("data-picked", true);
          opt.css("color", "grey");

          if(opt.text() == "google") {
            var text = "enter the "+opt.val()+" for your "+opt.text()+ " account:<br/>";
            var config = network_field.find(".network-config").clone();
            config.removeClass("network-config");
            config.attr("id", ".network-config-"+opt.text());
            config.find("input.network_name").val(opt.text());
            config.find("input.network_param").hide();
            config.addClass("network-config-entry");
            config.find(".text").append("google plus one");
            config.show();
          } else {
            var text = "enter the "+opt.val()+" for your "+opt.text()+ " account:<br/>";
            var config = network_field.find(".network-config").clone();
            config.removeClass("network-config");
            config.attr("id", ".network-config-"+opt.text());
            config.find("input.network_name").val(opt.text());
            config.addClass("network-config-entry");
            config.find(".text").append(text);
            config.show();
          }
          networks.append(config);
        });
    });
  }

  return {
    initialize:initialize,
  }
}();

================================================
FILE: app/assets/javascripts/app/modules/notifier.js
================================================
Notifier = function() {
  var self = this;

  function initialize() {
    if(isValid()) {
      updateCheckbox();

      $("#desktop_notifs").click(function() {
        window.webkitNotifications.requestPermission();
        updateCheckbox();
      })
    }
  }

  function sendMessage(title, message, icon) {
    if(!icon)
      icon = "/images/rails.png"

    if(isValid() && isAllowed()) {
      window.webkitNotifications.createNotification(icon, title, message).show();
    }
  }

  function isValid() {
    return window.webkitNotifications != null;
  }

  function isAllowed() {
    return window.webkitNotifications.checkPermission() == 0;
  }

  //private
  function updateCheckbox() {
    var cbox = $("#desktop_notifs");
    var v = window.webkitNotifications.checkPermission();
    if(v == 0 && $("#desktop_notifs").is(':not:checked')) {
      cbox.attr("checked", true)
    } else {
      cbox.attr("checked", false)
    }
  }

  return {
    initialize:initialize,
    sendMessage:sendMessage,
    isValid:isAllowed
  }
}();


================================================
FILE: app/assets/javascripts/app/modules/pages.js
================================================
Pages = function() {
  var self = this;

  function initialize($body) {
    if($body.hasClass("new") || $body.hasClass("edit") || $body.hasClass("create") || $body.hasClass("update") ) {
      Editor.initialize();
    }
  }

  return {
    initialize:initialize
  }
}();


================================================
FILE: app/assets/javascripts/app/modules/plans.js
================================================
var Plans = {
  initialize: function() {
    $('.users-qty input').change(function(){
        $('.total_private').html('$'+$(this).val()*2);

    });
  }
}

================================================
FILE: app/assets/javascripts/app/modules/questions.js
================================================
Questions = function() {
  var self = this;

  function initialize($body) {
    if($body.hasClass("show")) {
      initializeOnShow($body);
    } else if($body.hasClass("index")) {
      initializeOnIndex($body);
    } else if($body.hasClass("new") || $body.hasClass("edit")) {
      initializeOnNew($body);
    } else if($body.hasClass("move")) {
      initializeOnMove($body);
    }
  }

  function initializeOnIndex($body) {
    Ui.navigateShortcuts($(".questions-index"), ".Question");
    $(".Question .toolbar").shapadoToolbar();
    Votes.initializeOnQuestions();

    if(Questions.isIndexEmpty()){
      var current_language = $('.current_language > a').data('language');
      if(current_language!='any'){
        $('.current_language').tipsy({trigger: 'manual', gravity: 'w'});
        $('.current_language').tipsy('show');
      }
    }

    var extraParams = Utils.urlVars();
    extraParams['format'] = 'js';

//     FIXME:filter is blocking mongodb
    $(".quick_question #ask_question").searcher({
      url : "/questions/related_questions.js",
      target : $(".questions-index"),
      fields : $(".quick_question #ask_question input#question_title"),
      behaviour : "live",
      timeout : 500,
//       minLength: 5,
      extraParams : extraParams,
      before_query: function() {
        $('.quick_question .search-feedback').text("searching questions");
      },
      success: function(data) {
        $('.quick_question .search-feedback').text(data.message);
        $('#additional_info .pagination').html(data.pagination);
      },
      after_reset: function(data) {
        $('.quick_question .search-feedback').text("type to search");
        $('.content-tabs').show();
      },
    });

    $(".flag-link-index").live("click", function(event) {
      var link = $(this).parents("article.Question").find("h2 a");
      if(link) {
        window.location= link.attr("href")+"#to_flag"
      }
      return false;
    });
  }

  function initializeOnShow($body) {
    $(".main-question .toolbar").shapadoToolbar({formContainer: "#panel-forms"});
    $("article.answer .toolbar").shapadoToolbar({formContainer: ".article-forms", afterFetchForm : function(link, form) {
      Editor.setup(form.find(".markdown_editor, .wysiwyg_editor"));
    }});
    $(".answer .toolbar, .comment .toolbar").shapadoToolbar({formContainer: ".article-forms", afterFetchForm: function(link, form) {
      Editor.setup(form.find(".markdown_editor, .wysiwyg_editor"));
    }});
    Rewards.initialize();
    Editor.initialize();
    Votes.initializeOnQuestion();
    Comments.initializeOnQuestion();
    Answers.initializeOnQuestion();

    if(typeof(Jqmath)!='undefined')
      Jqmath.initialize();

    var anchor = document.location.hash;
    if(anchor == "#to_flag") {
      var flag_question = $("a#flag_question")
      flag_question.trigger('click');
      $('html,body').animate({scrollTop: flag_question.offset().top-100}, 1000);
    }
    prettyPrint();
  }

  function initializeOnNew($body) {
    $("#related_questions").hide();
    Editor.initialize();
    $("#question_tags").ajaxChosen({
      method: 'GET',
      url: '/questions/tags_for_autocomplete.js',
      dataType: 'json'
    }, function (data) {
      var terms = {};
      $.each(data, function (i, val) {
          console.log('i: '+i)
          console.log('val: '+val)
        terms[val["value"]] = val["caption"];
      });

      return terms;
    });


//     FIXME:filter is blocking mongodb
    $(".ask_question #ask_question").searcher({url : "/questions/related_questions.js",
      target : $("#related_questions"),
      fields : $("form#ask_question input[type=text][name*=question]"),
      behaviour : "focusout",
      timeout : 2500,
      extraParams : { 'format' : 'js',
                      'per_page' : 5,
                      mini: true
      },
      before_query: function(target) {
        target.show();
      },
      success: function(data) {
        if(!data.html) {
          $("#related_questions").hide();
          // TODO: show a message
        }
        $("label#rqlabel").show();
      }
    });

    var fields = $("#attachments #fields");
    var template = fields.find(".template");
    template.find("input").attr("name", "question[attachments[id]]");
    template.hide();

    $("#attachments #fields .attachment_field .remove_attachment").live("click", function(e) {
      $(this).parent().remove();
      return false;
    });

    $(".remove_attachment_link").live("click", function(e) {
      var url = $(this).attr("href");
      var remove = confirm("are you sure?"); //TODO; i18n
      if (remove) {
        $.ajax({url: url, dataType: 'json', context: $(this), success: function(data, textStatus, XMLHttpRequest){
          $(this).parent().remove();
        }});
      }
      return false;
    });

    var count = -1;
    $("#attachments .add_attachment").live("click", function(e) {
      var template = fields.find(".template");
      var new_field = template.clone();
      new_field.removeClass("template");
      count++;
      var new_name = new_field.find("input").attr("name").replace(/(id)/, count);
      new_field.find("input").attr("name",new_name)

      new_field.show();

      fields.append(new_field);

      return false;
    });
  }

  function initializeOnMove(data) {
    if($('#groups_slug').length){
      $('#groups_slug').autocomplete({
        source: "/groups/autocomplete_for_group_slug.json",
        minLength: 1,
        select: function( event, ui ) {
            $('#groups_slug').val(ui.item.slug);
            return false;
        }
      })
      .data( "autocomplete" )._renderItem = function( ul, item ) {
        return $( "<li></li>" )
          .data( "item.autocomplete", item )
          .append( "<a>" + item.slug + "</a>" )
          .appendTo( ul );
      };
    }
  }

  function createOnIndex(data) {
    var section = $("section.questions-index");
    section.prepend(data.html).hide().slideToggle();
  }

  function createOnShow(data) {
  }

  function updateOnIndex(data) {
    var key = "article.Question#"+data.object_id;
    for(var prop in data.changes) {
      if(prop == "title") {
        var n = data.changes[prop].pop();
        $(key+" h2 a").text(n);
      }
    }
  }

  function updateOnShow(data) {
    var key = "section#question.main-question."+data.object_id;
    for(var prop in data.changes) {
      switch(prop) {
        case "title": {
          var n = data.changes[prop].pop();
          $(key+" h1:first").text(n);
        }
        break;
        case "body": {
          var n = data.changes[prop].pop();
          $(key+" .description").html(n);
        }
        break;
      }
    }
  }

  function isIndexEmpty() {
    var empty = $('.empty_questions').length;
    return empty > 0
  }

  function updateWidgets(data) {
  }

  return {
    initialize:initialize,
    initializeOnIndex:initializeOnIndex,
    initializeOnShow:initializeOnShow,
    initializeOnNew:initializeOnNew,
    initializeOnMove:initializeOnMove,
    createOnIndex:createOnIndex,
    createOnShow:createOnShow,
    updateOnIndex:updateOnIndex,
    updateOnShow:updateOnShow,
    isIndexEmpty:isIndexEmpty,
    updateWidgets:updateWidgets
  }
}();


================================================
FILE: app/assets/javascripts/app/modules/rewards.js
================================================
Rewards = function() {
  var self = this;

  function initialize() {
    $("#reward_reputation" ).hide();
    if(Ui.offline) {
      $("#reward_reputation" ).hide();
      var slider_div = $("#reward_slider");
      slider_div.slider({
        value:50,
        min: 50,
        max: slider_div.data("max"),
        step: 50,
        slide: function( event, ui ) {
          $("#reward_value").text(ui.value);
          $("#reward_reputation").val( ui.value );
        }
      });
    }
  }

  return {
    initialize:initialize
  }
}();


================================================
FILE: app/assets/javascripts/app/modules/searches.js
================================================
Searches = function() {
  var self = this;

  function initialize($body) {
    $(".advanced-search").click(function(){
      $(".advanced-form").toggleClass("open").slideToggle("slow");
      return false;
    });
  }

  return {
    initialize:initialize
  }
}



================================================
FILE: app/assets/javascripts/app/modules/shapado_ui.js
================================================
ShapadoUI = function() {
  var self = this;

  function newQuestion(data) {
    if(isOnQuestionIndex()){
      Questions.createOnIndex(data);
    } else if(isOnQuestionShow()) {
      Questions.createOnShow(data);
    } else {
      // update widgets?
    }
  }

  function updateQuestion(data) {
    if(isOnQuestionIndex()){
      Questions.updateOnIndex(data);
    } else if(isOnQuestionShow()) {
      Questions.updateOnShow(data);
    } else {
      // update widgets?
    }
  }

  function deleteQuestion(data) {
    $("article.Question#"+data.object_id).fadeOut();
  }

  function newAnswer(data) {
    if(isOnQuestionIndex()){
      Answers.updateOnIndex(data);
    } else if(isOnQuestionShow()) {
      Answers.createOnShow(data);
    }
  }

  function updateAnswer(data) {
    if(isOnQuestionIndex()){
      Answers.updateOnIndex(data);
    } else if(isOnQuestionShow()) {
      Answers.updateOnShow(data);
    }
  }

  function newComment(data) {
    if(isOnQuestionShow()) {
      Comments.createOnShow(data);
    }
  }

  function updateComment(data) {
    if(isOnQuestionShow()) {
      Comments.updateOnShow(data);
    }
  }

  function vote(data) {
    switch(data.on) {
      case 'Question': {
      }
      break;
      case 'Answer': {
        Answers.vote(data);
      }
      break;
    }
  }

  function newActivity(data) {
    Activities.createOnIndex(data);
  }

  //PRIVATE
  function isOnQuestionIndex() {
    // TODO: Use body class
    return $("section.questions-index")[0] != null;
  }

  function isOnQuestionShow() {
    // TODO: Use body class
    return $("section.main-question#question")[0] != null;
  }

  return {
    newQuestion:newQuestion,
    updateQuestion:updateQuestion,
    deleteQuestion:deleteQuestion,
    newAnswer:newAnswer,
    updateAnswer:updateAnswer,
    newComment:newComment,
    updateComment:updateComment,
    vote:vote,
    newActivity:newActivity
  }
}();




================================================
FILE: app/assets/javascripts/app/modules/tags.js
================================================
Tags = function() {
  var self = this;

  function initialize($body) {
    if($body.hasClass("index")) {
      Tags.initializeOnIndex($body);
    }
  }

  function initializeOnIndex($body) {
    // TODO: Use data-foo
    $("#filter_tags").find("input[type=submit]").hide();
    $("#filter_tags").searcher({ url : "/questions/tags.js",
                                target : $("#tag_table"),
                                behaviour : "live",
                                timeout : 500,
                                extraParams : { 'format' : 'js' },
                                success: function(data) { $('#tags').hide() }
    });
  }

  return {
    initialize:initialize,
    initializeOnIndex:initializeOnIndex
  }
}();


================================================
FILE: app/assets/javascripts/app/modules/themes.js
================================================
Themes = function() {
  var self = this;
  function initialize($body) {
    if($body.hasClass("show")) {
      var message = $body.find("#not_ready")
      if(message.length > 0) {
        var show_theme = document.location.href;
        $.poll(5000, function(retry){
          $.getJSON(show_theme+"/ready", {format: "js"}, function(response, status) {
            if(status == 'success' && (response.ready))
              if(response.message) {
                message.text(response.message);
                Effects.fade(message);
                if(show_theme == document.location.href)
                  document.location.href = document.location.href;
              } else if(response.last_error) {
                message.text(response.last_error);
                message.addClass("error");
                Effects.fade(message);
              }
            else
              retry();
          });
        });
      }
    } else if( $body.hasClass("new") || $body.hasClass("edit") || $body.hasClass("create") || $body.hasClass("update")) {

      $(".show_dialog").click(function(e){
        var self = $(this);
        var target = $('.'+self.data('target')+"-code-editor");
        target.dialog({width: ($body.width()-50)});
        if(self.data("actived") != "1") {
          target.find("textarea.code").each(function(i, e){
            CodeMirror.fromTextArea(e, {lineNumbers: true, theme: "default", mode: $(e).data("lang")});
          });
          self.data({"actived": "1"});
        }

        return false;
      });
    } else if($body.hasClass("index")) {
      $(".import_theme").click(function() {
        $(".import_dialog").dialog();
      });
    }
  }

  return {
    initialize:initialize
  }
}();


================================================
FILE: app/assets/javascripts/app/modules/ui.js
================================================
Ui = function() {
  var self = this;

  function initialize() {
    initDropdowns();
    initQuickQuestion();
    Auth.dropdownToggle();
    Auth.positionDropdown();
    initializeAjaxTooltips();
    initializeSmoothScrollToTop();
    Form.initialize();
    }

    $('[rel=tipsy]').tipsy({gravity: 's'});
    $('.tipsy-plans').tipsy({gravity: 'e', opacity: 1});
    $('.lang-option').click(function(){
      var path = $('#lang-select-toggle').data('language');
      var language = $(this).data('language');
      $.ajax({type: 'POST', url: path,
              data: {'language[filter]': language},
              success: function(){window.location.reload()}
             });
    });

    sortValues('#group_language', 'option', ':last', 'text', null);
    sortValues('#user_language', 'option',  false, 'text', null);
    sortValues('#lang_opts', '.radio_option', false, 'attr', 'id');
    sortValues('select#question_language', 'option', false, 'text', null);

    if(offline()) {
      $("a[data-login-required], .toggle-action, .not_member").on('click', function(e) {
        e.preventDefault();
        Auth.startLoginDialog();
      });

//    $(document.body).delegate("#ask_question,.plans-form,.downgrade-form", "submit", function(event) {
    $(document.body).delegate("#ask_question", "submit", function(event) {
        if(Ui.offline()){
            Auth.startLoginDialog();
            return false;
        }
    });
    $(document.body).delegate("#join_dialog_link", "click", function(event) {
      Groups.join(this);
    });

    $(document.body).delegate("click",  ".join_group", function(event) {
      if(!$(this).hasClass('email')){
        Auth.startLoginDialog($(this).text(),1);
        return false;
      } else {document.location=$(this).attr('href')}
    });

    $(".toggle-action").on("ajax:success", function(xhr, data, status) {
      if(data.success) {
        var link = $(this);
        var href = link.attr('href'), title = link.attr('title'), text = link.data('ujs:enable-with');
        var dataUndo = link.data('undo'), dataTitle = link.data('title'), dataText = link.data('text');

        var img = link.children('img');
        var counter = $(link.data('counter'));

        link.attr({href: dataUndo, title: dataTitle });
        link.data({'undo': href, 'title': title, 'text': text});

        if(dataText && $.trim(dataText)!=''){
          link.text(dataText);
          link.data('ujs:enable-with', dataText);
        }

        img.attr({src: img.data('src'), 'data-src': img.attr('src')});
        if(typeof(link.data('increment'))!='undefined') {
          counter.text(parseFloat($.trim(counter.text()))+link.data('increment'));
        }
        Messages.show(data.message, "notice");
      }
    });
  }

  function initializeFeedback() {
    var feedback = $("#feedbackform");
    feedback.dialog({ title: "Feedback", autoOpen: false, modal: true, width:"420px" });
    $('#feedbackform .cancel-feedback').click(function(){
      $("#feedbackform").dialog('close');
      return false;
    });
    $('#feedback').click(function(){
      var isOpen = feedback.dialog('isOpen');
      if (isOpen){
        feedback.dialog('close');
      } else {
        feedback.dialog('open');
      }
      return false;
    });
  }

  function sortValues(selectID, child, keepers, method, arg) {
    if(keepers){
      var any = $(selectID+' '+child+keepers);
      any.remove();
    }
    var sortedVals = $.makeArray($(selectID+' '+child)).sort(function(a,b){
      return $(a)[method](arg) > $(b)[method](arg) ? 1: -1;
    });
    $(selectID).html(sortedVals);
    if(keepers)
      $(selectID).prepend(any);
    // needed for firefox:
    $(selectID).val($(selectID+' '+child+'[selected=selected]').val());
  }

  function offline() {
    return $('.offline').length>0 || notMember();
  }

  function notMember() {
    return $('.not_member').length>0;
  }

  function centerScroll(tag, container) {
    container = container || $('html,body');
    viewportHeight = $(window).height();
    if(window.innerHeight)
      viewportHeight = window.innerHeight;

    var top = tag.offset().top - (viewportHeight/2.0);

    container.scrollTop(top);
  }

  function navigateShortcuts(container, element_selector) {
    elements = container.find(element_selector);
    var first_element = elements[0];
    if(first_element) {
      $(first_element).addClass("active");
    }

    container.on("click", element_selector, function(ev) {
      elements.removeClass("active");
      next = $(this);
      next.addClass("active");
    });

    $(document).keydown(function(ev) {

      if(container.is(':visible')) {
        current_element = $(container.find(element_selector+'.active'));

        moved = false;
        next = null;
        if(ev.keyCode == 74){
          next = current_element.next(element_selector);
        } else if(ev.keyCode == 75){
          next = current_element.prev(element_selector);
        }

        if(next && next.length > 0) {
          current_element.removeClass("active");
          next.addClass("active");
          Ui.center_scroll(next);
        }
      }
    });
  }

  function initializeLangFields(container) {
    var fields = (container||$('body')).find('.lang-fields');
    if(fields.length > 0){
      fields.tabs();
    }
  }

  function initializeSmoothScrollToTop() {
    $(".top-bar").click(function(e) {
      var isTopBar = $(e.target).hasClass('top-bar');
      if(isTopBar)
        $("html, body").animate({ scrollTop: 0 }, "fast");
    });
  }

  function initializeAjaxTooltips() {
    $(document.body).on("mouseleave, scroll",".markdown, .toolbar, .Question, .comment-content, .tag-list, .user-data, .tooltip", function(event) {
      $(".tooltip").hide();
    });

    $(document.body).on("mouseenter", ".toolbar, .markdown, .Question, .comment-content, .tag-list, .user-data", function(event) {
      $(".tooltip").hide();
    });

    $(document.body).on("hover", ".ajax-tooltip", function(event) {
      var url = $(this).attr('href');
      var tag_link = $(this);
      $('.tooltip').hide();
      if(tag_link.data('tooltip')==1){
        var tooltip = tag_link.next('.tooltip');
        tooltip.show(); //.delay(1800).fadeIn(400).delay(1800);
        return false;
      }
      $.ajax({
        url: url+'?tooltip=1',
        dataType: 'json',
        success: function(data){
          $(".tooltip").hide();
          tag_link.removeAttr('title');
          tag_link.data('tooltip', 1);
          tag_link.after(data.html)
          var tooltip = tag_link.next('.tooltip');
          tooltip.css({'display': 'block'});
          tooltip.position({at: 'top center', of: tag_link, my: 'bottom', collision: 'fit fit'})
        }})
      return false;
    })

  }

  //Private
  function initDropdowns() {
    $('ul.menubar').droppy({
      className:    'dropHover',
      autoArrows:    false,
      trigger: 'click'
    });

    $('ul.menubar .has-subnav').click(function(e) {
      e.preventDefault();
    });
  }

  function initQuickQuestion() {
    var quick_question = $('.quick_question');
    quick_question.find('.buttons-quickq').hide();
    quick_question.find('form input[type=text]').focus(function(){
      quick_question.find('.buttons-quickq').show();
    });
  }

  return {
    initialize:initialize,
    initializeFeedback:initializeFeedback,
    sortValues:sortValues,
    offline:offline,
    notMember:notMember,
    centerScroll:centerScroll,
    navigateShortcuts:navigateShortcuts,
    initializeLangFields:initializeLangFields,
    initializeSmoothScrollToTop:initializeSmoothScrollToTop,
    initializeAjaxTooltips:initializeAjaxTooltips
  }
}();


================================================
FILE: app/assets/javascripts/app/modules/updater.js
================================================
Updater = function() {
  var self = this;

  function initialize($body) {
    var $main_content_wrap = $("#main-content-wrap");

    var current, prev, refreshed;
    setupLoadingIcon();

    current = guessCurrentLayout();

    $(document.body).on("click", "a.pjax", function(ev) {
     var link = $(this);

      prev = current;
      current = link.data("layout");
      var current_page_layout = link.data("page-layout");

      var parent = link.parent();
      var gparent = parent.parent();

      if(gparent[0].tagName == "UL") {
        $(".widget-links ul li").removeClass('active');
        parent.addClass("active");

        if(parent.hasClass("answers") || parent.hasClass("questions") || parent.hasClass("unanswered") || parent.hasClass("activities")) {
          $main_content_wrap.removeClass();
          $main_content_wrap.addClass(parent.attr("class"));
        }
      }

      var data = {_pjax: true};

      if(prev && prev != current){
        refreshed = data._refresh = true;
      }

      // adsense is incompatible with pjax http://goo.gl/ieq2u
      // TODO remove this once adsense is compatible with html5 history

      if($('.widget-adsense').length > 0 && refreshed){
        return true;
      }

      $.pjax({
        data: data,
        timeout: 10000,
        url: $(this).attr("href"),
        container: '#main-content-wrap',
        success: function(data, state, xhr) {
          var body = $(document.body);
          var body_class = xhr.getResponseHeader('x-bodyclass')
          if(current_page_layout)
            body_class += ' ' + current_page_layout
          body.attr({"class": body_class});
          Loader.refresh(body, refreshed);
          return false;
        }
      });

      ev.preventDefault();

      return false;
    });
  }

  function setupLoadingIcon() {
    var text = 'Loading...';
    if(typeof I18n.loading !== 'undefined'){
      text = I18n.loading;
    }

    $("#main-content-wrap").bind('start.pjax', function() {
      var h = $( "<div class='loading-box'>" +
                 "<span class='loading-box-icon'></span>" +
                 "<h1>" + text + "</h1>" + "</div>" );

      $("body").prepend(h);
      h.css({
        top: $(window).scrollTop() + $(window).height() / 2
      });

      h.show();
    });

    $("#main-content-wrap").bind('end.pjax', function() {
      $(".loading-box").remove();
    });
  }

  function guessCurrentLayout() {
    var layout = '';
    var page = $(document.body);

    if(page.hasClass('questions-controller index')) {
      layout = 'index';
    } else if(page.hasClass('questions-controller show')) {
      layout = 'question';
    } else if(page.hasClass('users-controller show')) {
      layout = 'user';
    } else if(page.hasClass('badges-controller')) {
      layout = 'badges';
    } else if(page.hasClass('pages-controller')) {
      layout = 'pages';
    } else if(page.hasClass('questions-controller new')) {
      layout = 'new-question';
    } else if(page.hasClass('admin-members-controller')) {
      layout = 'manage-members';
    } else if(page.hasClass('admin-announcements-controller')) {
      layout = 'manage-announcements';
    } else {
      layout = "index" // FIXME
    }

    return layout;
  }

  return {
    initialize:initialize,
    setupLoadingIcon:setupLoadingIcon,
    guessCurrentLayout:guessCurrentLayout
  }
}();


================================================
FILE: app/assets/javascripts/app/modules/users.js
================================================
Users = function() {
  var self = this;

  function initialize($body) {
    if($body.hasClass("index")) {
      Users.initializeOnIndex($body);
    } else if($body.hasClass("edit")) {
      Networks.initialize($body);
    }
  }

  function initializeOnEdit($body) {
    if($body.hasClass("index")) {
      Users.initialize_on_index($body);
    } else if($body.hasClass("edit")) {
      Networks.initialize($body);
    }
  }

  function initializeOnIndex($body) {
    $("#filter_users input[type=submit]").remove();

    $("#filter_users").searcher({ url : "/users.js",
                                target : $("#users"),
                                behaviour : "live",
                                timeout : 500,
                                extraParams : { 'format' : 'js' },
                                success: function(data) {
                                  $('#additional_info .pagination').html(data.pagination)
                                }
    });
  }

  function initializeOnShow($body) {
    $('#user_language').chosen();
    $('#user_timezone').chosen();
    $('#user_preferred_languages').chosen();
  }

  return {
    initialize:initialize,
    initializeOnIndex:initializeOnIndex,
    initializeOnShow:initializeOnShow
  }
}();


================================================
FILE: app/assets/javascripts/app/modules/utils.js
================================================
Utils = function() {
  var self=this;
  function urlVars() {
    var vars = {}, hash;
    var hashes = {}
    if(window.location.href.indexOf('?') > 0) {
      window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    }

    for(var i = 0; i < hashes.length; i++) {
      hash = hashes[i].split('=');
      vars[hash[0]] = hash[1];
    }
    return vars;
  }

  function appendParams(url, params) {
    if(url.indexOf('?')==-1)
      url += '?'+params;
    else
      url += '&'+params;

    return url;
  }

  function log(data) {
    window.console && window.console.log(data);
  }

  return {
    urlVars:urlVars,
    appendParams:appendParams,
    log:log
  }
}();


================================================
FILE: app/assets/javascripts/app/modules/votes.js
================================================
Votes = function() {
  var self=this;

  function initialize() {
  }

  function initializeOnQuestions() {
    $(".quick-vote-button").live("click", function(event) {
      var btn = $(this);
      btn.hide();
      var src = btn.attr('src');
      if (src.indexOf('/images/dialog-ok.png') == 0){
        var btn_name = $(this).attr("name")
        var form = $(this).parents("form");
        $.post(form.attr("action"), form.serialize()+"&"+btn_name+"=1", function(data){
          if(data.success){
            btn.parents('.item').find('.votes .counter').text(data.average);
            btn.attr('src', '/images/dialog-ok-apply.png');
            Messages.show(data.message, "notice")
          } else {
            Messages.show(data.message, "error")
            if(data.status == "unauthenticate") {
              window.onbeforeunload = null;
              window.location="/users/login"
            }
          }
          btn.show();
        }, "json");
      }
      return false;
    });
  }

  function initializeOnQuestion() {
    $(".answer").delegate("form.vote_form button", "click", function(event) {
      if(Ui.offline()){
        Auth.startLoginDialog();
      } else {
        var btn_name = $(this).attr("name");
        var form = $(this).parents("form");
        $.post(form.attr("action")+'.js', form.serialize()+"&"+btn_name+"=1", function(data){
          if(data.success){
            form.find(".votes_average").text(data.average);
            if(data.vote_state == "destroyed") {
              form.find("button").removeClass("checked");
            }
            else {
              if(data.vote_state == "updated") {
                form.find("button").removeClass("checked");
              }
              if(data.vote_type == "vote_down") {
                form.find("button.negative").addClass("checked");
              } else {
                form.find("button.positive").addClass("checked");
              }
            }
            Messages.show(data.message, "notice");
          } else {
            Messages.show(data.message, "error");
            if(data.status == "unauthenticate") {
              window.onbeforeunload = null;
              window.location="/users/login";
            }
          }
        }, "json");
      }
      return false;
    });
  }

  function updateOnIndex(data) {
  }

  function updateOnShow(data) {
  }

  return {
    initialize:initialize,
    initializeOnQuestions:initializeOnQuestions,
    initializeOnQuestion:initializeOnQuestion,
    updateOnIndex:updateOnIndex,
    updateOnShow:updateOnShow
  }
}();


================================================
FILE: app/assets/javascripts/app/modules/websocket.js
================================================
ShapadoSocket = function() {
  var self=this, $config;
  function initialize() {
    WEB_SOCKET_SWF_LOCATION = "/javascripts/web-socket-js/WebSocketMain.swf";

    $config = $("#websocket");
    this.error_count = 0;
    this.ws = new WebSocket("ws://"+$config.data("host")+":34567/");
    this.socket_key = null;


    this.ws.onmessage = function(evt) {
      ShapadoSocket.parse(evt.data);
    };

    window.webSocketError = function(message) {
      console.error(decodeURIComponent(message));
      ShapadoSocket.error_count += 1;
    }

    this.ws.onclose = function() {
      if(ShapadoSocket.error_count < 3)
        setTimeout(ShapadoSocket.initialize, 5000)
    };

    this.ws.onopen = function() {
      ShapadoSocket.send({id: 'start', key: $config.data("key"), channel_id: $config.data("group")});
    };
  }

  function addChatMessage(from, message) {
    $("#chat_div").chatbox("option", "boxManager").addMsg(from, message);
  }

  function parse(data) {
    var data = JSON.parse(data);

    window.console && console.log("received: ");
    window.console && console.log(data);

    switch(data.id) {
      case 'chatmessage': {
        addChatMessage(data.from, data.message);
      }
      break;
      case 'newquestion': {
        ShapadoUI.newQuestion(data);
      }
      break;
      case 'updatequestion': {
        ShapadoUI.updateQuestion(data);
      }
      break;
      case 'destroyquestion': {
        ShapadoUI.deleteQuestion(data);
      }
      break;
      case 'newanswer': {
        ShapadoUI.newAnswer(data);
      }
      break;
      case 'updateanswer': {
        ShapadoUI.updateAnswer(data);
      }
      break;
      case 'vote': {
        ShapadoUI.vote(data);
      }
      break;
      case 'newcomment': {
        ShapadoUI.newComment(data);
      }
      break;
      case 'updatedcomment': {
        ShapadoUI.updateComment(data);
      }
      break;
      case 'newactivity': {
        ShapadoUI.newActivity(data);
      }
      break;
    }
  }

  function send(data) {
    this.ws.send(JSON.stringify(data))
  }

  return {
    initialize:initialize,
    addChatMessage:addChatMessage,
    parse:parse,
    send:send
  }
}();


================================================
FILE: app/assets/javascripts/app/modules/widgets.js
================================================
Widgets = function() {
  var self=this;

  function initialize(data) {
    Networks.initialize();
    var widget = $('.widget-container');

    $('a.delete-widget').bind('ajax:success', function() {
      var link = $(this);
      var parent = link.parents('.widget-container');
      parent.remove();
      return false;
    });

    var dialogContainer = $('#edit-widget-dialog');

    widget.delegate('.edit_widget', 'click', function(event) {
      var link = $(this);
      var parent = link.parents('.widget-container');
      var display = parent.find('.widget-info');

      var preview = display.find('.widget');

      $.ajax( link.attr('href'), {
        dataType: 'json',
        data: {format: 'js'},
        success: function(data) {
          var form = $(data.html);
          Ui.initializeLangFields(form);

          dialogContainer.html(form);
          var dialog = dialogContainer.dialog({modal: true, minWidth: 620, title: link.data('title')});

          form.find('.cancel').bind('click', function(event) {
            dialogContainer.dialog("close");
            return false;
          });

          if(form.attr('id').match(/edit_group_networks_widget/)) {
            Networks.initialize(form);
          }
        }
      });
      return false;
    });

    $('#widget_position').change(function() {
      var opt = $(this).find("option:selected");
      $('.select-widget .zone img').attr({src: '/images/zone-'+opt.val()+'.gif'});
      $('.zone .name').text(opt.text())

    });
  }

  function createOnIndex(data) {
  }

  function createOnShow(data) {
  }

  function updateOnIndex(data) {

  }

  function updateOnShow(data) {

  }

  return {
    initialize:initialize,
    createOnIndex:createOnIndex,
    createOnShow:createOnShow,
    updateOnIndex:updateOnIndex,
    updateOnShow:updateOnShow
  }
}();


================================================
FILE: app/assets/javascripts/application-init.js
================================================
function initialize_all() {
};

// $(document).ready(function() {
//   initialize_all();
// });


================================================
FILE: app/assets/javascripts/application.js
================================================
//= require jquery-ui
//= require jquery_ujs

//= require app/modules/effects.js
//= require vendor/chosen.jquery.min.js
//= require vendor/ajax-chosen.js
//= require vendor/jquery.cookie.js
//= require vendor/jquery.pjax.js
//= require tipsy/jquery.tipsy.js
//= require jpicker.js

//= require app/modules/app_config.js
//= require app/modules/ui.js
//= require app/modules/shapado_ui.js
//= require app/modules/websocket.js
//= require app/modules/authentication.js
//= require app/modules/local_storage.js
//= require app/modules/messages.js

//= require app/modules/votes.js
//= require app/modules/plans.js
//= require app/modules/questions.js
//= require app/modules/answers.js
//= require app/modules/comments.js
//= require app/modules/members.js
//= require app/modules/rewards.js
//= require app/modules/activities.js
//= require app/modules/tags.js
//= require app/modules/utils.js
//= require app/modules/groups.js
//= require app/modules/users.js
//= require app/modules/pages.js
//= require app/modules/loader.js
//= require app/modules/updater.js
//= require app/modules/layout_editor.js
//= require app/initializers/search.js
//= require app/initializers/retag.js
//= require app/initializers/shapado_toolbar.js
//= require vendor/jquery.droppy.js
//= require app/modules/invitations.js
//= require application-init.js

//= require vendor/jquery.textarea.js
//= require vendor/jHtmlArea.js
//= require vendor/highlight/prettify.js
//= require app/modules/editor.js
//= require vendor/showdown.js
//= require app/modules/rewards.js
//= require app/initializers/single/question.js
//= require app/modules/notifier.js
//= require vendor/jquery.notifyBar.js
//= require app/modules/form.js
//= require app/modules/geo.js
//= require app/modules/networks.js
//= require app/modules/widgets.js
//= require vendor/jquery.smart-poll.js
//= require app/modules/themes.js

//= require app/main.js





================================================
FILE: app/assets/javascripts/codemirror.js
================================================
//= require codemirror/codemirror.js
//= require codemirror/mode/javascript/javascript.js
//= require codemirror/mode/css/css.js
//= require codemirror/mode/xml/xml.js
//= require codemirror/mode/htmlmixed/htmlmixed.js


================================================
FILE: app/assets/javascripts/facebook_app/facebox/facebox.css
================================================
#facebox {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 100;
  text-align: left;
}


#facebox .popup{
  position:relative;
  border:3px solid rgba(0,0,0,0);
  -webkit-border-radius:5px;
  -moz-border-radius:5px;
  border-radius:5px;
  -webkit-box-shadow:0 0 18px rgba(0,0,0,0.4);
  -moz-box-shadow:0 0 18px rgba(0,0,0,0.4);
  box-shadow:0 0 18px rgba(0,0,0,0.4);
}

#facebox .content {
  display:table;
  width: 370px;
  padding: 10px;
  background: #fff;
  -webkit-border-radius:4px;
  -moz-border-radius:4px;
  border-radius:4px;
}

#facebox .content > p:first-child{
  margin-top:0;
}
#facebox .content > p:last-child{
  margin-bottom:0;
}

#facebox .close{
  position:absolute;
  top:5px;
  right:5px;
  padding:2px;
  background:#fff;
}
#facebox .close img{
  opacity:0.3;
}
#facebox .close:hover img{
  opacity:1.0;
}

#facebox .loading {
  text-align: center;
}

#facebox .image {
  text-align: center;
}

#facebox img {
  border: 0;
  margin: 0;
}

#facebox_overlay {
  position: fixed;
  top: 0px;
  left: 0px;
  height:100%;
  width:100%;
}

.facebox_hide {
  z-index:-100;
}

.facebox_overlayBG {
  background-color: #000;
  z-index: 99;
}

================================================
FILE: app/assets/javascripts/facebook_app/facebox/facebox.js
================================================
/*
 * Facebox (for jQuery)
 * version: 1.2 (05/05/2008)
 * @requires jQuery v1.2 or later
 *
 * Examples at http://famspam.com/facebox/
 *
 * Licensed under the MIT:
 *   http://www.opensource.org/licenses/mit-license.php
 *
 * Copyright 2007, 2008 Chris Wanstrath [ chris@ozmm.org ]
 *
 * Usage:
 *
 *  jQuery(document).ready(function() {
 *    jQuery('a[rel*=facebox]').facebox()
 *  })
 *
 *  <a href="#terms" rel="facebox">Terms</a>
 *    Loads the #terms div in the box
 *
 *  <a href="terms.html" rel="facebox">Terms</a>
 *    Loads the terms.html page in the box
 *
 *  <a href="terms.png" rel="facebox">Terms</a>
 *    Loads the terms.png image in the box
 *
 *
 *  You can also use it programmatically:
 *
 *    jQuery.facebox('some html')
 *    jQuery.facebox('some html', 'my-groovy-style')
 *
 *  The above will open a facebox with "some html" as the content.
 *
 *    jQuery.facebox(function($) {
 *      $.get('blah.html', function(data) { $.facebox(data) })
 *    })
 *
 *  The above will show a loading screen before the passed function is called,
 *  allowing for a better ajaxy experience.
 *
 *  The facebox function can also display an ajax page, an image, or the contents of a div:
 *
 *    jQuery.facebox({ ajax: 'remote.html' })
 *    jQuery.facebox({ ajax: 'remote.html' }, 'my-groovy-style')
 *    jQuery.facebox({ image: 'stairs.jpg' })
 *    jQuery.facebox({ image: 'stairs.jpg' }, 'my-groovy-style')
 *    jQuery.facebox({ div: '#box' })
 *    jQuery.facebox({ div: '#box' }, 'my-groovy-style')
 *
 *  Want to close the facebox?  Trigger the 'close.facebox' document event:
 *
 *    jQuery(document).trigger('close.facebox')
 *
 *  Facebox also has a bunch of other hooks:
 *
 *    loading.facebox
 *    beforeReveal.facebox
 *    reveal.facebox (aliased as 'afterReveal.facebox')
 *    init.facebox
 *    afterClose.facebox
 *
 *  Simply bind a function to any of these hooks:
 *
 *   $(document).bind('reveal.facebox', function() { ...stuff to do after the facebox and contents are revealed... })
 *
 */
(function($) {
  $.facebox = function(data, klass) {
    $.facebox.loading()

    if (data.ajax) fillFaceboxFromAjax(data.ajax, klass)
    else if (data.image) fillFaceboxFromImage(data.image, klass)
    else if (data.div) fillFaceboxFromHref(data.div, klass)
    else if ($.isFunction(data)) data.call($)
    else $.facebox.reveal(data, klass)
  }

  /*
   * Public, $.facebox methods
   */

  $.extend($.facebox, {
    settings: {
      opacity      : 0.2,
      overlay      : true,
      loadingImage : '/javascripts/facebook_app/facebox/loading.gif',
      closeImage   : '/javascripts/facebook_app/facebox/closelabel.png',
      imageTypes   : [ 'png', 'jpg', 'jpeg', 'gif' ],
      faceboxHtml  : '\
    <div id="facebox" style="display:none;"> \
      <div class="popup"> \
        <div class="content"> \
        </div> \
        <a href="#" class="close"><img src="/javascripts/facebook_app/facebox/closelabel.png" title="close" class="close_image" /></a> \
      </div> \
    </div>'
    },

    loading: function() {
      init()
      if ($('#facebox .loading').length == 1) return true
      showOverlay()

      $('#facebox .content').empty()
      $('#facebox .body').children().hide().end().
        append('<div class="loading"><img src="'+$.facebox.settings.loadingImage+'"/></div>')

      $('#facebox').css({
        top:	getPageScroll()[1] + (getPageHeight() / 10),
        left:	$(window).width() / 2 - 205
      }).show()

      $(document).bind('keydown.facebox', function(e) {
        if (e.keyCode == 27) $.facebox.close()
        return true
      })
      $(document).trigger('loading.facebox')
    },

    reveal: function(data, klass) {
      $(document).trigger('beforeReveal.facebox')
      if (klass) $('#facebox .content').addClass(klass)
      $('#facebox .content').append(data)
      $('#facebox .loading').remove()
      $('#facebox .body').children().fadeIn('normal')
      $('#facebox').css('left', $(window).width() / 2 - ($('#facebox .popup').width() / 2))
      $(document).trigger('reveal.facebox').trigger('afterReveal.facebox')
    },

    close: function() {
      $(document).trigger('close.facebox')
      return false
    }
  })

  /*
   * Public, $.fn methods
   */

  $.fn.facebox = function(settings) {
    if ($(this).length == 0) return

    init(settings)

    function clickHandler() {
      $.facebox.loading(true)

      // support for rel="facebox.inline_popup" syntax, to add a class
      // also supports deprecated "facebox[.inline_popup]" syntax
      var klass = this.rel.match(/facebox\[?\.(\w+)\]?/)
      if (klass) klass = klass[1]

      fillFaceboxFromHref(this.href, klass)
      return false
    }

    return this.bind('click.facebox', clickHandler)
  }

  /*
   * Private methods
   */

  // called one time to setup facebox on this page
  function init(settings) {
    if ($.facebox.settings.inited) return true
    else $.facebox.settings.inited = true

    $(document).trigger('init.facebox')
    makeCompatible()

    var imageTypes = $.facebox.settings.imageTypes.join('|')
    $.facebox.settings.imageTypesRegexp = new RegExp('\.(' + imageTypes + ')$', 'i')

    if (settings) $.extend($.facebox.settings, settings)
    $('body').append($.facebox.settings.faceboxHtml)

    var preload = [ new Image(), new Image() ]
    preload[0].src = $.facebox.settings.closeImage
    preload[1].src = $.facebox.settings.loadingImage

    $('#facebox').find('.b:first, .bl').each(function() {
      preload.push(new Image())
      preload.slice(-1).src = $(this).css('background-image').replace(/url\((.+)\)/, '$1')
    })

    $('#facebox .close').click($.facebox.close)
    $('#facebox .close_image').attr('src', $.facebox.settings.closeImage)
  }

  // getPageScroll() by quirksmode.com
  function getPageScroll() {
    var xScroll, yScroll;
    if (self.pageYOffset) {
      yScroll = self.pageYOffset;
      xScroll = self.pageXOffset;
    } else if (document.documentElement && document.documentElement.scrollTop) {	 // Explorer 6 Strict
      yScroll = document.documentElement.scrollTop;
      xScroll = document.documentElement.scrollLeft;
    } else if (document.body) {// all other Explorers
      yScroll = document.body.scrollTop;
      xScroll = document.body.scrollLeft;
    }
    return new Array(xScroll,yScroll)
  }

  // Adapted from getPageSize() by quirksmode.com
  function getPageHeight() {
    var windowHeight
    if (self.innerHeight) {	// all except Explorer
      windowHeight = self.innerHeight;
    } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
      windowHeight = document.documentElement.clientHeight;
    } else if (document.body) { // other Explorers
      windowHeight = document.body.clientHeight;
    }
    return windowHeight
  }

  // Backwards compatibility
  function makeCompatible() {
    var $s = $.facebox.settings

    $s.loadingImage = $s.loading_image || $s.loadingImage
    $s.closeImage = $s.close_image || $s.closeImage
    $s.imageTypes = $s.image_types || $s.imageTypes
    $s.faceboxHtml = $s.facebox_html || $s.faceboxHtml
  }

  // Figures out what you want to display and displays it
  // formats are:
  //     div: #id
  //   image: blah.extension
  //    ajax: anything else
  function fillFaceboxFromHref(href, klass) {
    // div
    if (href.match(/#/)) {
      var url    = window.location.href.split('#')[0]
      var target = href.replace(url,'')
      if (target == '#') return
      $.facebox.reveal($(target).html(), klass)

    // image
    } else if (href.match($.facebox.settings.imageTypesRegexp)) {
      fillFaceboxFromImage(href, klass)
    // ajax
    } else {
      fillFaceboxFromAjax(href, klass)
    }
  }

  function fillFaceboxFromImage(href, klass) {
    var image = new Image()
    image.onload = function() {
      $.facebox.reveal('<div class="image"><img src="' + image.src + '" /></div>', klass)
    }
    image.src = href
  }

  function fillFaceboxFromAjax(href, klass) {
    $.get(href, function(data) { $.facebox.reveal(data, klass) })
  }

  function skipOverlay() {
    return $.facebox.settings.overlay == false || $.facebox.settings.opacity === null
  }

  function showOverlay() {
    if (skipOverlay()) return

    if ($('#facebox_overlay').length == 0)
      $("body").append('<div id="facebox_overlay" class="facebox_hide"></div>')

    $('#facebox_overlay').hide().addClass("facebox_overlayBG")
      .css('opacity', $.facebox.settings.opacity)
      .click(function() { $(document).trigger('close.facebox') })
      .fadeIn(200)
    return false
  }

  function hideOverlay() {
    if (skipOverlay()) return

    $('#facebox_overlay').fadeOut(200, function(){
      $("#facebox_overlay").removeClass("facebox_overlayBG")
      $("#facebox_overlay").addClass("facebox_hide")
      $("#facebox_overlay").remove()
    })

    return false
  }

  /*
   * Bindings
   */

  $(document).bind('close.facebox', function() {
    $(document).unbind('keydown.facebox')
    $('#facebox').fadeOut(function() {
      $('#facebox .content').removeClass().addClass('content')
      $('#facebox .loading').remove()
      $(document).trigger('afterClose.facebox')
    })
    hideOverlay()
  })

})(jQuery);


================================================
FILE: app/assets/javascripts/facebook_app/init.js
================================================
var FbQuestions = {
  initialize: function() {
    if($(".unauthenticated").length > 0) {
      $("input, textarea").focus(function() {
        Auth.openPopup('/users/auth/facebook');
        $(this).blur();
        return false;
      });

      $(".require_login").click(function() {
        Auth.openPopup('/users/auth/facebook');
        return false;
      });
    }

    $(".markdown a, a[rel=external]").click(function() {
      var u = $(this).attr("href");

      window.open(u);
      return false;
    });

    $("article.Question h3 a").click(function() {
      var l = $(this);
      var q = l.parents("article.Question");

      q.find(".question-body").slideToggle();

      return false;
    });

    $(".quick_question form").submit(function() {
      var f = $(this);
      var step1 = f.find(".step1");
      var step2 = f.find(".step2");

      var href = f.attr("action");

      if(!step2.is(':visible')) {
        step2.slideDown();
      } else {
        $.ajax({
          url: href+'.js',
          dataType: 'json',
          type: "POST",
          data: f.serialize()+"&facebook=1",
          success: function(data){
            if(data.success){
              step2.slideUp();

              Messages.show(data.message, "notice");
              $("section.questions-index").prepend(data.html);
            } else {
              Messages.show(data.message, "error");

              if(data.status == "unauthenticate") {
                Auth.openPopup("/users/auth/facebook");
              }
            }
          },
          error: Messages.ajax_error_handler,
          complete: function(XMLHttpRequest, textStatus) {
          }
        });
      }
      return false;
    });

    $("form.new_answer").submit(function() {
      var f = $(this);
      var href = f.attr("action");

      $.ajax({
        url: href+'.js',
        dataType: 'json',
        type: "POST",
        data: f.serialize()+"&facebook=1",
        success: function(data){
          if(data.success){
            Messages.show(data.message, "notice");
            $("article.Question#"+data.question_id+" .answers-list").prepend(data.html);
          } else {
            Messages.show(data.message, "error");

            if(data.status == "unauthenticate") {
              Auth.openPopup("/users/auth/facebook");
            }
          }
        },
        error: Messages.ajax_error_handler,
        complete: function(XMLHttpRequest, textStatus) {
        }
      });

      return false;
    });

    $("a.follow_question").click(function() {
      console.lo("!!!")
      var l = $(this);
      var href = $(this).attr("href");

      $.get(href+".js", function(data) {
        Messages.show(data.message, 'notice');
      },
      'json');
      return false;
    });
  }
};

var FbUsers = {
  initialize: function() {
    $('a[href^="/users/"]').click(function(e) {
      var href = $(this).attr("href");
      href = Utils.append_params(href, "format=js&facebook=1");

      $.facebox(function() {
        $.get(href, function(data, status, jqXHR) {
          Utils.log(data);
          $.facebox(data.html);
        }, "JSON");
      });
      return false;
    });
  }
};

$(document).ready(function() {
  $current_group = $("body").attr("data-group");

  FbQuestions.initialize();
  FbUsers.initialize();
});


================================================
FILE: app/assets/javascripts/i18n/af.js
================================================
/** Messages for Afrikaans (Afrikaans)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Naudefj
 */

var I18n = {
	on_leave_page: "U kan u veranderinge verloor"
};



================================================
FILE: app/assets/javascripts/i18n/be-Tarask.js
================================================
/** Messages for Belarusian (Taraškievica orthography) (‪беларуская (тарашкевіца)‬)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Jim-by
 */

var I18n = {
	on_leave_page: "Вашыя зьмены могуць быць страчаныя",
	loading: "Загрузка…"
};



================================================
FILE: app/assets/javascripts/i18n/br.js
================================================
/** Messages for Breton (brezhoneg)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Siebrand
 */

var I18n = {
	on_leave_page: "Marteze emaoc\'h o vont da goll kemmoù bet degaset d\'ar bajenn-mañ"
};



================================================
FILE: app/assets/javascripts/i18n/ca.js
================================================
/** Messages for Catalan (català)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Gemmaa
 *  - Papapep
 */

var I18n = {
	on_leave_page: "Podeu perdre els vostres canvis",
	loading: "Carregant..."
};



================================================
FILE: app/assets/javascripts/i18n/da.js
================================================
/** Messages for Danish (dansk)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Emilkris33
 */

var I18n = {
	on_leave_page: "Du kan miste dine ændringer"
};



================================================
FILE: app/assets/javascripts/i18n/de.js
================================================
/** Messages for German (Deutsch)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Kghbln
 *  - Siebrand
 */

var I18n = {
	on_leave_page: "Deine Änderungen könnten verloren gehen",
	loading: "Lade …"
};



================================================
FILE: app/assets/javascripts/i18n/el.js
================================================
/** Messages for Greek (Ελληνικά)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Siebrand
 */

var I18n = {
	on_leave_page: "Μπορεί να χάσετε τις αλλαγές σας"
};



================================================
FILE: app/assets/javascripts/i18n/en.js
================================================
/** Messages for English (English)
 *  Exported from translatewiki.net
 *

 */

var I18n = {
	on_leave_page: "You may lose your changes",
        loading: "Loading..."
};



================================================
FILE: app/assets/javascripts/i18n/eo.js
================================================
/** Messages for Esperanto (Esperanto)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Darkweasel
 */

var I18n = {
	on_leave_page: "Vi eble perdos viajn ŝanĝojn"
};



================================================
FILE: app/assets/javascripts/i18n/es-419.js
================================================
/** Messages for Latin American Spanish (espanol de America Latina)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Siebrand
 */

var I18n = {
	on_leave_page: "Podrias perder tus cambios"
};



================================================
FILE: app/assets/javascripts/i18n/es.js
================================================
/** Messages for Spanish (español)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Patcito
 */

var I18n = {
	on_leave_page: "Podrías perder tus cambios",
	loading: "Cargando..."
};



================================================
FILE: app/assets/javascripts/i18n/fa.js
================================================
/** Messages for Persian (فارسی)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - MindHammerGames
 */

var I18n = {
	on_leave_page: "ممکن است تغییراتی که انجام داده اید را از دست بدهید"
};



================================================
FILE: app/assets/javascripts/i18n/fi.js
================================================
/** Messages for Finnish (suomi)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Centerlink
 */

var I18n = {
	on_leave_page: "Saatat menettää tekemäsi muutokset",
	loading: "Ladataan…"
};



================================================
FILE: app/assets/javascripts/i18n/fr.js
================================================
/** Messages for French (français)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Jean-Frédéric
 *  - Siebrand
 */

var I18n = {
	on_leave_page: "Vous pourriez perdre des modifications faits à cette page",
	loading: "Chargement…"
};



================================================
FILE: app/assets/javascripts/i18n/fur.js
================================================
/** Messages for Friulian (furlan)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Klenje
 */

var I18n = {
	on_leave_page: "Tu podaressis pierdi i tiei cambiaments"
};



================================================
FILE: app/assets/javascripts/i18n/gl.js
================================================
/** Messages for Galician (galego)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Siebrand
 *  - Toliño
 */

var I18n = {
	on_leave_page: "Pode perder as súas modificacións",
	loading: "Cargando..."
};



================================================
FILE: app/assets/javascripts/i18n/he.js
================================================
/** Messages for Hebrew (עברית)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - YaronSh
 */

var I18n = {
	on_leave_page: "השינויים שלך עלולים ללכת לאיבוד"
};



================================================
FILE: app/assets/javascripts/i18n/hu.js
================================================
/** Messages for Hungarian (magyar)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Dani
 *  - Dj
 */

var I18n = {
	on_leave_page: "Lehet, hogy elveszíted a változtatásaidat",
	loading: "Betöltés…"
};



================================================
FILE: app/assets/javascripts/i18n/ia.js
================================================
/** Messages for Interlingua (interlingua)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - McDutchie
 */

var I18n = {
	on_leave_page: "Tu poterea perder tu modificationes",
	loading: "Cargamento in curso…"
};



================================================
FILE: app/assets/javascripts/i18n/id.js
================================================
/** Messages for Indonesian (Bahasa Indonesia)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Farras
 */

var I18n = {
	on_leave_page: "Perubahan yang Anda buat akan hilang"
};



================================================
FILE: app/assets/javascripts/i18n/ig.js
================================================
/** Messages for Igbo (Igbo)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Ukabia
 */

var I18n = {
	on_leave_page: "Ihe Í rürü nwèríkí fù éfù"
};



================================================
FILE: app/assets/javascripts/i18n/it.js
================================================
/** Messages for Italian (italiano)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Danmaz74
 *  - Giallu
 */

var I18n = {
	on_leave_page: "Le modifiche potrebbero andare perse",
	loading: "Caricamento in corso…"
};



================================================
FILE: app/assets/javascripts/i18n/ja.js
================================================
/** Messages for Japanese (日本語)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Shirayuki
 */

var I18n = {
	on_leave_page: "変更内容を失う恐れがあります"
};



================================================
FILE: app/assets/javascripts/i18n/ksh.js
================================================
/** Messages for Colognian (Ripoarisch)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Purodha
 */

var I18n = {
	on_leave_page: "Ding Änderonge künnte verschött jonn"
};



================================================
FILE: app/assets/javascripts/i18n/lb.js
================================================
/** Messages for Luxembourgish (Lëtzebuergesch)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Robby
 */

var I18n = {
	on_leave_page: "Et ka sinn datt Är Ännerunge verluer ginn"
};



================================================
FILE: app/assets/javascripts/i18n/mk.js
================================================
/** Messages for Macedonian (македонски)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Bjankuloski06
 *  - Siebrand
 */

var I18n = {
	on_leave_page: "Може да ви се изгубат промените",
	loading: "Вчитувам..."
};



================================================
FILE: app/assets/javascripts/i18n/ms.js
================================================
/** Messages for Malay (Bahasa Melayu)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Anakmalaysia
 */

var I18n = {
	on_leave_page: "Anda mungkin kehilangan pengubahan anda",
	loading: "Sedang dimuatkan..."
};



================================================
FILE: app/assets/javascripts/i18n/nb.js
================================================
/** Messages for Norwegian Bokmål (‪norsk (bokmål)‬)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Siebrand
 */

var I18n = {
	on_leave_page: "Du kan miste endringene dine"
};



================================================
FILE: app/assets/javascripts/i18n/nl.js
================================================
/** Messages for Dutch (Nederlands)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Siebrand
 */

var I18n = {
	on_leave_page: "Uw wijzigingen kunnen verloren gaan.",
	loading: "Bezig met laden…"
};



================================================
FILE: app/assets/javascripts/i18n/pl.js
================================================
/** Messages for Polish (polski)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Grzechooo
 *  - Siebrand
 */

var I18n = {
	on_leave_page: "Możesz utracić wykonane zmiany",
	loading: "Ładowanie..."
};



================================================
FILE: app/assets/javascripts/i18n/pms.js
================================================
/** Messages for Piedmontese (Piemontèis)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Dragonòt
 */

var I18n = {
	on_leave_page: "It peule perde ij tò cambi"
};



================================================
FILE: app/assets/javascripts/i18n/pt-BR.js
================================================
/** Messages for Brazilian Portuguese (português do Brasil)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Giro720
 */

var I18n = {
	on_leave_page: "Você poderá perder suas alterações"
};



================================================
FILE: app/assets/javascripts/i18n/pt-PT.js
================================================
/** Messages for Portuguese (português)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Hamilton Abreu
 */

var I18n = {
	on_leave_page: "Poderá perder as suas alterações"
};



================================================
FILE: app/assets/javascripts/i18n/qqq.js
================================================
/** Messages for Message documentation (Message documentation)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - EugeneZelenko
 */

var I18n = {
	loading: "{{Identical|Loading}}"
};



================================================
FILE: app/assets/javascripts/i18n/ru.js
================================================
/** Messages for Russian (русский)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Adata80
 *  - Siebrand
 */

var I18n = {
	on_leave_page: "Ваши изменения могут быть потеряны",
	loading: "Загрузка..."
};



================================================
FILE: app/assets/javascripts/i18n/shi.js
================================================
/** Messages for Tachelhit (Tašlḥiyt/ⵜⴰⵛⵍⵃⵉⵜ)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Dalinanir
 */

var I18n = {
	on_leave_page: "Radak jlun imbdln lli tskrt ɣ tasna yad"
};



================================================
FILE: app/assets/javascripts/i18n/si.js
================================================
/** Messages for Sinhala (සිංහල)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Singhalawap
 */

var I18n = {
	on_leave_page: "ඔබගේ වෙනස්කිරීම් අහිමිවනු ඇත"
};



================================================
FILE: app/assets/javascripts/i18n/sr-Latn.js
================================================
/** Messages for Serbian (Latin script) (‪srpski (latinica)‬)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Rancher
 */

var I18n = {
	on_leave_page: "Izgubićete izmene koje ste napravili",
	loading: "Učitavam…"
};



================================================
FILE: app/assets/javascripts/i18n/sr.js
================================================
/** Messages for Serbian (Cyrillic script) (‪српски (ћирилица)‬)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Rancher
 */

var I18n = {
	on_leave_page: "Изгубићете измене које сте направили",
	loading: "Учитавам…"
};



================================================
FILE: app/assets/javascripts/i18n/sv.js
================================================
/** Messages for Swedish (svenska)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Tobulos1
 */

var I18n = {
	on_leave_page: "Du kan förlora dina ändringar"
};



================================================
FILE: app/assets/javascripts/i18n/te.js
================================================
/** Messages for Telugu (తెలుగు)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Veeven
 */

var I18n = {
	on_leave_page: "మీరు మీ మార్పులని కోల్పోవచ్చు"
};



================================================
FILE: app/assets/javascripts/i18n/tl.js
================================================
/** Messages for Tagalog (Tagalog)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - AnakngAraw
 */

var I18n = {
	on_leave_page: "Maaari mawala ang mga binago mo",
	loading: "Ikinakarga..."
};



================================================
FILE: app/assets/javascripts/i18n/uk.js
================================================
/** Messages for Ukrainian (українська)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Тест
 */

var I18n = {
	on_leave_page: "Ви можете втратити ваші зміни"
};



================================================
FILE: app/assets/javascripts/i18n/zh-CN.js
================================================
/** Messages for Simplified Chinese (‪中文(简体)‬)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Hydra
 *  - Hzy980512
 */

var I18n = {
	on_leave_page: "您可能会丢失所做的更改",
	loading: "载入中..."
};



================================================
FILE: app/assets/javascripts/i18n/zh-HANT.js
================================================
/** Messages for Traditional Chinese (‪中文(繁體)‬)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Frankou
 */

var I18n = {
	on_leave_page: "你可能會失去您的變更"
};



================================================
FILE: app/assets/javascripts/i18n/zh-TW.js
================================================
/** Messages for Traditional Chinese (‪中文(繁體)‬)
 *  Exported from translatewiki.net
 *
 * Translators:
 *  - Frankou
 */

var I18n = {
	on_leave_page: "你可能會失去您的變更"
};



================================================
FILE: app/assets/javascripts/magent_web.js
================================================
$(document).ready(function() {
  $.mobile.page.prototype.options.addBackBtn = true;
});



================================================
FILE: app/assets/javascripts/mobile.js
================================================
$(document).ready(function() {
  $.mobile.page.prototype.options.addBackBtn = true;

  $('div[data-role*="page"]').live('pageshow',function(event, ui){
    var internal = $("a").filter(function() {
      return (this.hostname == location.hostname && !this.href.match("mobile"));
    });

    $.each(internal, function() {
      var link = $(this);
      var href = link.attr("href");

      if(href.match('\\?')) {
        link.attr("href", href+"&format=mobile");
      } else {
        link.attr("href", href+"?format=mobile");
      }
    });
  });
});


================================================
FILE: app/assets/javascripts/payments/application.js
================================================
//= require payments/payments

================================================
FILE: app/assets/javascripts/payments/payments.js
================================================
var Payments = {
  initialize: function() {
    var form = $("#payment-form");
    Stripe.setPublishableKey(form.attr("data-token"));
    form.submit(function(event) {
      // disable the submit button to prevent repeated clicks
      $('.submit-button').attr("disabled", "disabled");

      console.log(form.find('.card-number').val())
      console.log(form.find('.card-cvc').val())
      console.log(form.find('.card-expiry-month').val())
      console.log(form.find('.card-expiry-year').val())
      Stripe.createToken({
          number: form.find('.card-number').val(),
          cvc: form.find('.card-cvc').val(),
          exp_month: form.find('.card-expiry-month').val(),
          exp_year: form.find('.card-expiry-year').val()
      }, Payments.handler);

      // prevent the form from submitting with the default action
      return false;
    });
  },
  handler: function(status, response) {
    if (response.error) {
      $(".payment-errors").html(response.error.message);
    } else {
      var form$ = $("#payment-form");
      var token = response['id'];

      form$.append("<input type='hidden' name='stripeToken' value='" + token + "'/>");
      form$.get(0).submit();
    }
  }
};

$(document).ready(function() {
  Payments.initialize();
});

================================================
FILE: app/assets/javascripts/shapadocom.js
================================================
//= require bootstrap/bootstrap.min.js



================================================
FILE: app/assets/javascripts/vendor/ajax-chosen.js
================================================
(function() {
  var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
  (function($) {
    return $.fn.ajaxChosen = function(options, itemBuilder) {
      var defaultedOptions, inputSelector, multiple, select;
      defaultedOptions = {
        minLength: 3,
        queryParameter: 'term',
        queryLimit: 10,
        data: {},
        chosenOptions: {},
        searchingText: "Searching...",
        noresultsText: "No results."
      };
      $.extend(defaultedOptions, options);
      if (defaultedOptions.success) {
        defaultedOptions.userSuppliedSuccess = defaultedOptions.success;
      }
      defaultedOptions.chosenOptions.no_results_text = defaultedOptions.searchingText;
      multiple = this.attr('multiple') != null;
      if (multiple) {
        inputSelector = ".search-field > input";
      } else {
        inputSelector = ".chzn-search > input";
      }
      select = this;
      this.chosen(defaultedOptions.chosenOptions);
      return this.next('.chzn-container').find(inputSelector).bind('keyup', function(e) {
        var search;
        if (this.previousSearch) {
          clearTimeout(this.previousSearch);
        }
        search = __bind(function() {
          var clearSearchingLabel, currentOptions, field, prevVal, val, _ref;
          val = $.trim($(this).attr('value'));
          prevVal = (_ref = $(this).data('prevVal')) != null ? _ref : '';
          $(this).data('prevVal', val);
          field = $(this);
          clearSearchingLabel = __bind(function() {
            var resultsDiv;
            if (multiple) {
              resultsDiv = field.parent().parent().siblings();
            } else {
              resultsDiv = field.parent().parent();
            }
            return resultsDiv.find('.no-results').html(defaultedOptions.noresultsText + " '" + $(this).attr('value') + "'");
          }, this);
          if (val.length < defaultedOptions.minLength || val === prevVal) {
            clearSearchingLabel();
            return false;
          }
          currentOptions = select.find('option');
          if (currentOptions.length < defaultedOptions.queryLimit && val.indexOf(prevVal) === 0 && prevVal !== '') {
            clearSearchingLabel();
            return false;
          }
          defaultedOptions.data[defaultedOptions.queryParameter] = val;
          defaultedOptions.success = function(data) {
            var currentOpt, items, keydownEvent, latestVal, newOpt, newOptions, noResult, _fn, _fn2, _i, _j, _len, _len2;
            if (!field.is(':focus')) {
              return;
            }
            items = itemBuilder(data);
            newOptions = [];
            $.each(items, function(value, text) {
              var newOpt;
              newOpt = $('<option>');
              newOpt.attr('value', value).html(text);
              return newOptions.push($(newOpt));
            });
            _fn = function(currentOpt) {
              var $currentOpt, newOption, presenceInNewOptions;
              $currentOpt = $(currentOpt);
              if ($currentOpt.attr('selected') && multiple) {
                return;
              }
              if ($currentOpt.attr('value') === '' && $currentOpt.html() === '' && !multiple) {
                return;
              }
              presenceInNewOptions = (function() {
                var _j, _len2, _results;
                _results = [];
                for (_j = 0, _len2 = newOptions.length; _j < _len2; _j++) {
                  newOption = newOptions[_j];
                  if (newOption.attr('value') === $currentOpt.attr('value')) {
                    _results.push(newOption);
                  }
                }
                return _results;
              })();
              if (presenceInNewOptions.length === 0) {
                return $currentOpt.remove();
              }
            };
            for (_i = 0, _len = currentOptions.length; _i < _len; _i++) {
              currentOpt = currentOptions[_i];
              _fn(currentOpt);
            }
            currentOptions = select.find('option');
            _fn2 = function(newOpt) {
              var currentOption, presenceInCurrentOptions, _fn3, _k, _len3;
              presenceInCurrentOptions = false;
              _fn3 = function(currentOption) {
                if ($(currentOption).attr('value') === newOpt.attr('value')) {
                  return presenceInCurrentOptions = true;
                }
              };
              for (_k = 0, _len3 = currentOptions.length; _k < _len3; _k++) {
                currentOption = currentOptions[_k];
                _fn3(currentOption);
              }
              if (!presenceInCurrentOptions) {
                return select.append(newOpt);
              }
            };
            for (_j = 0, _len2 = newOptions.length; _j < _len2; _j++) {
              newOpt = newOptions[_j];
              _fn2(newOpt);
            }
            latestVal = field.val();
            if ($.isEmptyObject(data)) {
              noResult = $('<option>');
              noResult.addClass('no-results');
              noResult.html(defaultedOptions.noresultsText + " '" + latestVal + "'").attr('value', '');
              select.append(noResult);
            } else {
              select.change();
            }
            select.trigger("liszt:updated");
            $('.no-results').removeClass('active-result');
            field.val(latestVal);
            if (!$.isEmptyObject(data)) {
              keydownEvent = $.Event('keydown');
              keydownEvent.which = 40;
              field.trigger(keydownEvent);
            }
            if (defaultedOptions.userSuppliedSuccess) {
              return defaultedOptions.userSuppliedSuccess(data);
            }
          };
          return $.ajax(defaultedOptions);
        }, this);
        return this.previousSearch = setTimeout(search, 100);
      });
    };
  })(jQuery);
}).call(this);

================================================
FILE: app/assets/javascripts/vendor/highlight/prettify.js
================================================
function H(){var x=navigator&&navigator.userAgent&&/\bMSIE 6\./.test(navigator.userAgent);H=function(){return x};return x}(function(){function x(b){b=b.split(/ /g);var a={};for(var c=b.length;--c>=0;){var d=b[c];if(d)a[d]=null}return a}var y="break continue do else for if return while ",U=y+"auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile ",D=U+"catch class delete false import new operator private protected public this throw true try ",
I=D+"alignof align_union asm axiom bool concept concept_map const_cast constexpr decltype dynamic_cast explicit export friend inline late_check mutable namespace nullptr reinterpret_cast static_assert static_cast template typeid typename typeof using virtual wchar_t where ",J=D+"boolean byte extends final finally implements import instanceof null native package strictfp super synchronized throws transient ",V=J+"as base by checked decimal delegate descending event fixed foreach from group implicit in interface internal into is lock object out override orderby params readonly ref sbyte sealed stackalloc string select uint ulong unchecked unsafe ushort var ",
K=D+"debugger eval export function get null set undefined var with Infinity NaN ",L="caller delete die do dump elsif eval exit foreach for goto if import last local my next no our print package redo require sub undef unless until use wantarray while BEGIN END ",M=y+"and as assert class def del elif except exec finally from global import in is lambda nonlocal not or pass print raise try with yield False True None ",N=y+"alias and begin case class def defined elsif end ensure false in module next nil not or redo rescue retry self super then true undef unless until when yield BEGIN END ",
O=y+"case done elif esac eval fi function in local set then until ",W=I+V+K+L+M+N+O;function X(b){return b>="a"&&b<="z"||b>="A"&&b<="Z"}function u(b,a,c,d){b.unshift(c,d||0);try{a.splice.apply(a,b)}finally{b.splice(0,2)}}var Y=(function(){var b=["!","!=","!==","#","%","%=","&","&&","&&=","&=","(","*","*=","+=",",","-=","->","/","/=",":","::",";","<","<<","<<=","<=","=","==","===",">",">=",">>",">>=",">>>",">>>=","?","@","[","^","^=","^^","^^=","{","|","|=","||","||=","~","break","case","continue",
"delete","do","else","finally","instanceof","return","throw","try","typeof"],a="(?:(?:(?:^|[^0-9.])\\.{1,3})|(?:(?:^|[^\\+])\\+)|(?:(?:^|[^\\-])-)";for(var c=0;c<b.length;++c){var d=b[c];a+=X(d.charAt(0))?"|\\b"+d:"|"+d.replace(/([^=<>:&])/g,"\\$1")}a+="|^)\\s*$";return new RegExp(a)})(),P=/&/g,Q=/</g,R=/>/g,Z=/\"/g;function $(b){return b.replace(P,"&amp;").replace(Q,"&lt;").replace(R,"&gt;").replace(Z,"&quot;")}function E(b){return b.replace(P,"&amp;").replace(Q,"&lt;").replace(R,"&gt;")}var aa=
/&lt;/g,ba=/&gt;/g,ca=/&apos;/g,da=/&quot;/g,ea=/&amp;/g,fa=/&nbsp;/g;function ga(b){var a=b.indexOf("&");if(a<0)return b;for(--a;(a=b.indexOf("&#",a+1))>=0;){var c=b.indexOf(";",a);if(c>=0){var d=b.substring(a+3,c),g=10;if(d&&d.charAt(0)==="x"){d=d.substring(1);g=16}var e=parseInt(d,g);if(!isNaN(e))b=b.substring(0,a)+String.fromCharCode(e)+b.substring(c+1)}}return b.replace(aa,"<").replace(ba,">").replace(ca,"'").replace(da,'"').replace(ea,"&").replace(fa," ")}function S(b){return"XMP"===b.tagName}
function z(b,a){switch(b.nodeType){case 1:var c=b.tagName.toLowerCase();a.push("<",c);for(var d=0;d<b.attributes.length;++d){var g=b.attributes[d];if(!g.specified)continue;a.push(" ");z(g,a)}a.push(">");for(var e=b.firstChild;e;e=e.nextSibling)z(e,a);if(b.firstChild||!/^(?:br|link|img)$/.test(c))a.push("</",c,">");break;case 2:a.push(b.name.toLowerCase(),'="',$(b.value),'"');break;case 3:case 4:a.push(E(b.nodeValue));break}}var F=null;function ha(b){if(null===F){var a=document.createElement("PRE");
a.appendChild(document.createTextNode('<!DOCTYPE foo PUBLIC "foo bar">\n<foo />'));F=!/</.test(a.innerHTML)}if(F){var c=b.innerHTML;if(S(b))c=E(c);return c}var d=[];for(var g=b.firstChild;g;g=g.nextSibling)z(g,d);return d.join("")}function ia(b){var a=0;return function(c){var d=null,g=0;for(var e=0,h=c.length;e<h;++e){var f=c.charAt(e);switch(f){case "\t":if(!d)d=[];d.push(c.substring(g,e));var i=b-a%b;a+=i;for(;i>=0;i-="                ".length)d.push("                ".substring(0,i));g=e+1;break;
case "\n":a=0;break;default:++a}}if(!d)return c;d.push(c.substring(g));return d.join("")}}var ja=/(?:[^<]+|<!--[\s\S]*?--\>|<!\[CDATA\[([\s\S]*?)\]\]>|<\/?[a-zA-Z][^>]*>|<)/g,ka=/^<!--/,la=/^<\[CDATA\[/,ma=/^<br\b/i;function na(b){var a=b.match(ja),c=[],d=0,g=[];if(a)for(var e=0,h=a.length;e<h;++e){var f=a[e];if(f.length>1&&f.charAt(0)==="<"){if(ka.test(f))continue;if(la.test(f)){c.push(f.substring(9,f.length-3));d+=f.length-12}else if(ma.test(f)){c.push("\n");++d}else g.push(d,f)}else{var i=ga(f);
c.push(i);d+=i.length}}return{source:c.join(""),tags:g}}function v(b,a){var c={};(function(){var g=b.concat(a);for(var e=g.length;--e>=0;){var h=g[e],f=h[3];if(f)for(var i=f.length;--i>=0;)c[f.charAt(i)]=h}})();var d=a.length;return function(g,e){e=e||0;var h=[e,"pln"],f="",i=0,j=g;while(j.length){var o,m=null,k,l=c[j.charAt(0)];if(l){k=j.match(l[1]);m=k[0];o=l[0]}else{for(var n=0;n<d;++n){l=a[n];var p=l[2];if(p&&!p.test(f))continue;k=j.match(l[1]);if(k){m=k[0];o=l[0];break}}if(!m){o="pln";m=j.substring(0,
1)}}h.push(e+i,o);i+=m.length;j=j.substring(m.length);if(o!=="com"&&/\S/.test(m))f=m}return h}}var oa=v([],[["pln",/^[^<]+/,null],["dec",/^<!\w[^>]*(?:>|$)/,null],["com",/^<!--[\s\S]*?(?:--\>|$)/,null],["src",/^<\?[\s\S]*?(?:\?>|$)/,null],["src",/^<%[\s\S]*?(?:%>|$)/,null],["src",/^<(script|style|xmp)\b[^>]*>[\s\S]*?<\/\1\b[^>]*>/i,null],["tag",/^<\/?\w[^<>]*>/,null]]);function pa(b){var a=oa(b);for(var c=0;c<a.length;c+=2)if(a[c+1]==="src"){var d,g;d=a[c];g=c+2<a.length?a[c+2]:b.length;var e=b.substring(d,
g),h=e.match(/^(<[^>]*>)([\s\S]*)(<\/[^>]*>)$/);if(h)a.splice(c,2,d,"tag",d+h[1].length,"src",d+h[1].length+(h[2]||"").length,"tag")}return a}var qa=v([["atv",/^\'[^\']*(?:\'|$)/,null,"'"],["atv",/^\"[^\"]*(?:\"|$)/,null,'"'],["pun",/^[<>\/=]+/,null,"<>/="]],[["tag",/^[\w:\-]+/,/^</],["atv",/^[\w\-]+/,/^=/],["atn",/^[\w:\-]+/,null],["pln",/^\s+/,null," \t\r\n"]]);function ra(b,a){for(var c=0;c<a.length;c+=2){var d=a[c+1];if(d==="tag"){var g,e;g=a[c];e=c+2<a.length?a[c+2]:b.length;var h=b.substring(g,
e),f=qa(h,g);u(f,a,c,2);c+=f.length-2}}return a}function r(b){var a=[],c=[];if(b.tripleQuotedStrings)a.push(["str",/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""]);else if(b.multiLineStrings)a.push(["str",/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"]);else a.push(["str",/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,
null,"\"'"]);c.push(["pln",/^(?:[^\'\"\`\/\#]+)/,null," \r\n"]);if(b.hashComments)a.push(["com",/^#[^\r\n]*/,null,"#"]);if(b.cStyleComments)c.push(["com",/^\/\/[^\r\n]*/,null]);if(b.regexLiterals)c.push(["str",/^\/(?:[^\\\*\/\[]|\\[\s\S]|\[(?:[^\]\\]|\\.)*(?:\]|$))+(?:\/|$)/,Y]);if(b.cStyleComments)c.push(["com",/^\/\*[\s\S]*?(?:\*\/|$)/,null]);var d=x(b.keywords);b=null;var g=v(a,c),e=v([],[["pln",/^\s+/,null," \r\n"],["pln",/^[a-z_$@][a-z_$@0-9]*/i,null],["lit",/^0x[a-f0-9]+[a-z]/i,null],["lit",
/^(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d+)(?:e[+\-]?\d+)?[a-z]*/i,null,"123456789"],["pun",/^[^\s\w\.$@]+/,null]]);function h(f,i){for(var j=0;j<i.length;j+=2){var o=i[j+1];if(o==="pln"){var m,k,l,n;m=i[j];k=j+2<i.length?i[j+2]:f.length;l=f.substring(m,k);n=e(l,m);for(var p=0,t=n.length;p<t;p+=2){var w=n[p+1];if(w==="pln"){var A=n[p],B=p+2<t?n[p+2]:l.length,s=f.substring(A,B);if(s===".")n[p+1]="pun";else if(s in d)n[p+1]="kwd";else if(/^@?[A-Z][A-Z$]*[a-z][A-Za-z$]*$/.test(s))n[p+1]=s.charAt(0)==="@"?"lit":
"typ"}}u(n,i,j,2);j+=n.length-2}}return i}return function(f){var i=g(f);i=h(f,i);return i}}var G=r({keywords:W,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function sa(b,a){for(var c=0;c<a.length;c+=2){var d=a[c+1];if(d==="src"){var g,e;g=a[c];e=c+2<a.length?a[c+2]:b.length;var h=G(b.substring(g,e));for(var f=0,i=h.length;f<i;f+=2)h[f]+=g;u(h,a,c,2);c+=h.length-2}}return a}function ta(b,a){var c=false;for(var d=0;d<a.length;d+=2){var g=a[d+1],e,h;if(g==="atn"){e=
a[d];h=d+2<a.length?a[d+2]:b.length;c=/^on|^style$/i.test(b.substring(e,h))}else if(g==="atv"){if(c){e=a[d];h=d+2<a.length?a[d+2]:b.length;var f=b.substring(e,h),i=f.length,j=i>=2&&/^[\"\']/.test(f)&&f.charAt(0)===f.charAt(i-1),o,m,k;if(j){m=e+1;k=h-1;o=f}else{m=e+1;k=h-1;o=f.substring(1,f.length-1)}var l=G(o);for(var n=0,p=l.length;n<p;n+=2)l[n]+=m;if(j){l.push(k,"atv");u(l,a,d+2,0)}else u(l,a,d,2)}c=false}}return a}function ua(b){var a=pa(b);a=ra(b,a);a=sa(b,a);a=ta(b,a);return a}function va(b,
a,c){var d=[],g=0,e=null,h=null,f=0,i=0,j=ia(8);function o(k){if(k>g){if(e&&e!==h){d.push("</span>");e=null}if(!e&&h){e=h;d.push('<span class="',e,'">')}var l=E(j(b.substring(g,k))).replace(/(\r\n?|\n| ) /g,"$1&nbsp;").replace(/\r\n?|\n/g,"<br />");d.push(l);g=k}}while(true){var m;m=f<a.length?(i<c.length?a[f]<=c[i]:true):false;if(m){o(a[f]);if(e){d.push("</span>");e=null}d.push(a[f+1]);f+=2}else if(i<c.length){o(c[i]);h=c[i+1];i+=2}else break}o(b.length);if(e)d.push("</span>");return d.join("")}
var C={};function q(b,a){for(var c=a.length;--c>=0;){var d=a[c];if(!C.hasOwnProperty(d))C[d]=b;else if("console"in window)console.log("cannot override language handler %s",d)}}q(G,["default-code"]);q(ua,["default-markup","html","htm","xhtml","xml","xsl"]);q(r({keywords:I,hashComments:true,cStyleComments:true}),["c","cc","cpp","cs","cxx","cyc"]);q(r({keywords:J,cStyleComments:true}),["java"]);q(r({keywords:O,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);q(r({keywords:M,hashComments:true,
multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);q(r({keywords:L,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);q(r({keywords:N,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);q(r({keywords:K,cStyleComments:true,regexLiterals:true}),["js"]);function T(b,a){try{var c=na(b),d=c.source,g=c.tags;if(!C.hasOwnProperty(a))a=/^\s*</.test(d)?"default-markup":"default-code";var e=C[a].call({},d);return va(d,g,e)}catch(h){if("console"in window){console.log(h);
console.trace()}return b}}function wa(b){var a=H(),c=[document.getElementsByTagName("pre"),document.getElementsByTagName("code"),document.getElementsByTagName("xmp")],d=[];for(var g=0;g<c.length;++g)for(var e=0;e<c[g].length;++e)d.push(c[g][e]);c=null;var h=0;function f(){var i=(new Date).getTime()+250;for(;h<d.length&&(new Date).getTime()<i;h++){var j=d[h];if(j.className&&j.className.indexOf("prettyprint")>=0){var o=j.className.match(/\blang-(\w+)\b/);if(o)o=o[1];var m=false;for(var k=j.parentNode;k;k=
k.parentNode)if((k.tagName==="pre"||k.tagName==="code"||k.tagName==="xmp")&&k.className&&k.className.indexOf("prettyprint")>=0){m=true;break}if(!m){var l=ha(j);l=l.replace(/(?:\r\n?|\n)$/,"");var n=T(l,o);if(!S(j))j.innerHTML=n;else{var p=document.createElement("PRE");for(var t=0;t<j.attributes.length;++t){var w=j.attributes[t];if(w.specified)p.setAttribute(w.name,w.value)}p.innerHTML=n;j.parentNode.replaceChild(p,j);p=j}if(a&&j.tagName==="PRE"){var A=j.getElementsByTagName("br");for(var B=A.length;--B>=
0;){var s=A[B];s.parentNode.replaceChild(document.createTextNode("\r\n"),s)}}}}}if(h<d.length)setTimeout(f,250);else if(b)b()}f()}window.PR_normalizedHtml=z;window.prettyPrintOne=T;window.prettyPrint=wa;window.PR={createSimpleLexer:v,registerLangHandler:q,sourceDecorator:r,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ"}})();


================================================
FILE: app/assets/javascripts/vendor/jHtmlArea.js
================================================
/*
* jHtmlArea 0.7.0 - WYSIWYG Html Editor jQuery Plugin
* Copyright (c) 2009 Chris Pietschmann
* http://jhtmlarea.codeplex.com
* Licensed under the Microsoft Reciprocal License (Ms-RL)
* http://jhtmlarea.codeplex.com/license
*/
(function($) {
    $.fn.htmlarea = function(opts) {
        if (opts && typeof (opts) === "string") {
            var args = [];
            for (var i = 1; i < arguments.length; i++) { args.push(arguments[i]); }
            var htmlarea = jHtmlArea(this[0]);
            var f = htmlarea[opts];
            if (f) { return f.apply(htmlarea, args); }
        }
        return this.each(function() { jHtmlArea(this, opts); });
    };
    var jHtmlArea = window.jHtmlArea = function(elem, options) {
        if (elem.jquery) {
            return jHtmlArea(elem[0]);
        }
        if (elem.jhtmlareaObject) {
            return elem.jhtmlareaObject;
        } else {
            return new jHtmlArea.fn.init(elem, options);
        }
    };
    jHtmlArea.fn = jHtmlArea.prototype = {

        // The current version of jHtmlArea being used
        jhtmlarea: "0.7.0",

        init: function(elem, options) {
            if (elem.nodeName.toLowerCase() === "textarea") {
                var opts = $.extend({}, jHtmlArea.defaultOptions, options);
                elem.jhtmlareaObject = this;

                var textarea = this.textarea = $(elem);
                var container = this.container = $("<div/>").addClass("jHtmlArea").width(textarea.width()).insertAfter(textarea);

                var toolbar = this.toolbar = $("<div/>").addClass("ToolBar").appendTo(container);
                priv.initToolBar.call(this, opts);

                var iframe = this.iframe = $("<iframe/>").height(textarea.height());
                iframe.width(textarea.width() - ($.browser.msie ? 0 : 4));
                var htmlarea = this.htmlarea = $("<div/>").append(iframe);

                container.append(htmlarea).append(textarea.hide());

                priv.initEditor.call(this, opts);
                priv.attachEditorEvents.call(this);

                // Fix total height to match TextArea
                iframe.height(iframe.height() - toolbar.height());
                toolbar.width(textarea.width() - 2);

                if (opts.loaded) { opts.loaded.call(this); }
            }
        },
        dispose: function() {
            this.textarea.show().insertAfter(this.container);
            this.container.remove();
            this.textarea[0].jhtmlareaObject = null;
        },
        execCommand: function(a, b, c) {
            this.iframe[0].contentWindow.focus();
            this.editor.execCommand(a, b || false, c || null);
            this.updateTextArea();
        },
        ec: function(a, b, c) {
            this.execCommand(a, b, c);
        },
        queryCommandValue: function(a) {
            this.iframe[0].contentWindow.focus();
            return this.editor.queryCommandValue(a);
        },
        qc: function(a) {
            return this.queryCommandValue(a);
        },
        getSelectedHTML: function() {
            if ($.browser.msie) {
                return this.getRange().htmlText;
            } else {
                var elem = this.getRange().cloneContents();
                return $("<p/>").append($(elem)).html();
            }
        },
        getSelection: function() {
            if ($.browser.msie) {
                //return (this.editor.parentWindow.getSelection) ? this.editor.parentWindow.getSelection() : this.editor.selection;
                return this.editor.selection;
            } else {
                return this.iframe[0].contentDocument.defaultView.getSelection();
            }
        },
        getRange: function() {
            var s = this.getSelection();
            if (!s) { return null; }
            //return (s.rangeCount > 0) ? s.getRangeAt(0) : s.createRange();
            return (s.getRangeAt) ? s.getRangeAt(0) : s.createRange();
        },
        html: function(v) {
            if (v) {
                this.pasteHTML(v);
            } else {
                return toHtmlString();
            }
        },
        pasteHTML: function(html) {
            this.iframe[0].contentWindow.focus();
            var r = this.getRange();
            if ($.browser.msie) {
                r.pasteHTML(html);
            } else if ($.browser.mozilla) {
                r.deleteContents();
                r.insertNode($((html.indexOf("<") != 0) ? $("<span/>").append(html) : html)[0]);
            } else { // Safari
                r.deleteContents();
                r.insertNode($(this.iframe[0].contentWindow.document.createElement("span")).append($((html.indexOf("<") != 0) ? "<span>" + html + "</span>" : html))[0]);
            }
            r.collapse(false);
            r.select();
        },
        cut: function() {
            this.ec("cut");
        },
        copy: function() {
            this.ec("copy");
        },
        paste: function() {
            this.ec("paste");
        },
        bold: function() { this.ec("bold"); },
        italic: function() { this.ec("italic"); },
        underline: function() { this.ec("underline"); },
        strikeThrough: function() { this.ec("strikethrough"); },
        image: function(url) {
            if ($.browser.msie && !url) {
                this.ec("insertImage", true);
            } else {
                this.ec("insertImage", false, (url || prompt("Image URL:", "http://")));
            }
        },
        removeFormat: function() {
            this.ec("removeFormat", false, []);
            this.unlink();
        },
        link: function() {
            if ($.browser.msie) {
                this.ec("createLink", true);
            } else {
                this.ec("createLink", false, prompt("Link URL:", "http://"));
            }
        },
        unlink: function() { this.ec("unlink", false, []); },
        orderedList: function() { this.ec("insertorderedlist"); },
        unorderedList: function() { this.ec("insertunorderedlist"); },
        superscript: function() { this.ec("superscript"); },
        subscript: function() { this.ec("subscript"); },

        p: function() {
            this.formatBlock("<p>");
        },
        h1: function() {
            this.heading(1);
        },
        h2: function() {
            this.heading(2);
        },
        h3: function() {
            this.heading(3);
        },
        h4: function() {
            this.heading(4);
        },
        h5: function() {
            this.heading(5);
        },
        h6: function() {
            this.heading(6);
        },
        heading: function(h) {
            this.formatBlock($.browser.msie ? "Heading " + h : "h" + h);
        },

        indent: function() {
            this.ec("indent");
        },
        outdent: function() {
            this.ec("outdent");
        },

        insertHorizontalRule: function() {
            this.ec("insertHorizontalRule", false, "ht");
        },

        justifyLeft: function() {
            this.ec("justifyLeft");
        },
        justifyCenter: function() {
            this.ec("justifyCenter");
        },
        justifyRight: function() {
            this.ec("justifyRight");
        },

        increaseFontSize: function() {
            if ($.browser.msie) {
                this.ec("fontSize", false, this.qc("fontSize") + 1);
            } else if ($.browser.safari) {
                this.getRange().surroundContents($(this.iframe[0].contentWindow.document.createElement("span")).css("font-size", "larger")[0]);
            } else {
                this.ec("increaseFontSize", false, "big");
            }
        },
        decreaseFontSize: function() {
            if ($.browser.msie) {
                this.ec("fontSize", false, this.qc("fontSize") - 1);
            } else if ($.browser.safari) {
                this.getRange().surroundContents($(this.iframe[0].contentWindow.document.createElement("span")).css("font-size", "smaller")[0]);
            } else {
                this.ec("decreaseFontSize", false, "small");
            }
        },

        forecolor: function(c) {
            this.ec("foreColor", false, c || prompt("Enter HTML Color:", "#"));
        },

        formatBlock: function(v) {
            this.ec("formatblock", false, v || null);
        },

        showHTMLView: function() {
            this.updateTextArea();
            this.textarea.show();
            this.htmlarea.hide();
            $("ul li:not(li:has(a.html))", this.toolbar).hide();
            $("ul:not(:has(:visible))", this.toolbar).hide();
            $("ul li a.html", this.toolbar).addClass("highlighted");
        },
        hideHTMLView: function() {
            this.updateHtmlArea();
            this.textarea.hide();
            this.htmlarea.show();
            $("ul", this.toolbar).show();
            $("ul li", this.toolbar).show().find("a.html").removeClass("highlighted");
        },
        toggleHTMLView: function() {
            (this.textarea.is(":hidden")) ? this.showHTMLView() : this.hideHTMLView();
        },

        toHtmlString: function() {
            return this.editor.body.innerHTML;
        },
        toString: function() {
            return this.editor.body.innerText;
        },

        updateTextArea: function() {
            this.textarea.val(this.toHtmlString());
        },
        updateHtmlArea: function() {
            this.editor.body.innerHTML = this.textarea.val();
        }
    };
    jHtmlArea.fn.init.prototype = jHtmlArea.fn;

    jHtmlArea.defaultOptions = {
        toolbar: [
        ["html"], ["bold", "italic", "underline", "strikethrough", "|", "subscript", "superscript"],
        ["increasefontsize", "decreasefontsize"],
        ["orderedlist", "unorderedlist"],
        ["indent", "outdent"],
        ["justifyleft", "justifycenter", "justifyright"],
        ["link", "unlink", "image", "horizontalrule"],
        ["p", "h1", "h2", "h3", "h4", "h5", "h6"],
        ["cut", "copy", "paste"]
    ],
        css: null,
        toolbarText: {
            bold: "Bold", italic: "Italic", underline: "Underline", strikethrough: "Strike-Through",
            cut: "Cut", copy: "Copy", paste: "Paste",
            h1: "Heading 1", h2: "Heading 2", h3: "Heading 3", h4: "Heading 4", h5: "Heading 5", h6: "Heading 6", p: "Paragraph",
            indent: "Indent", outdent: "Outdent", horizontalrule: "Insert Horizontal Rule",
            justifyleft: "Left Justify", justifycenter: "Center Justify", justifyright: "Right Justify",
            increasefontsize: "Increase Font Size", decreasefontsize: "Decrease Font Size", forecolor: "Text Color",
            link: "Insert Link", unlink: "Remove Link", image: "Insert Image",
            orderedlist: "Insert Ordered List", unorderedlist: "Insert Unordered List",
            subscript: "Subscript", superscript: "Superscript",
            html: "Show/Hide HTML Source View"
        }
    };
    var priv = {
        toolbarButtons: {
            strikethrough: "strikeThrough", orderedlist: "orderedList", unorderedlist: "unorderedList",
            horizontalrule: "insertHorizontalRule",
            justifyleft: "justifyLeft", justifycenter: "justifyCenter", justifyright: "justifyRight",
            increasefontsize: "increaseFontSize", decreasefontsize: "decreaseFontSize",
            html: function(btn) {
                this.toggleHTMLView();
            }
        },
        initEditor: function(options) {
            var edit = this.editor = this.iframe[0].contentWindow.document;
            edit.designMode = 'on';
            edit.open();
            edit.write(this.textarea.val());
            edit.close();
            if (options.css) {
                var e = edit.createElement('link'); e.rel = 'stylesheet'; e.type = 'text/css'; e.href = options.css; edit.getElementsByTagName('head')[0].appendChild(e);
            }
        },
        initToolBar: function(options) {
            var that = this;

            var menuItem = function(className, altText, action) {
                return $("<li/>").append($("<a href='javascript:void(0);'/>").addClass(className).attr("title", altText).click(function() { action.call(that, $(this)); }));
            };

            function addButtons(arr) {
                var ul = $("<ul/>").appendTo(that.toolbar);
                for (var i = 0; i < arr.length; i++) {
                    var e = arr[i];
                    if ((typeof (e)).toLowerCase() === "string") {
                        if (e === "|") {
                            ul.append($('<li class="separator"/>'));
                        } else {
                            var f = (function(e) {
                                // If button name exists in priv.toolbarButtons then call the "method" defined there, otherwise call the method with the same name
                                var m = priv.toolbarButtons[e] || e;
                                if ((typeof (m)).toLowerCase() === "function") {
                                    return function(btn) { m.call(this, btn); };
                                } else {
                                    return function() { this[m](); this.editor.body.focus(); };
                                }
                            })(e.toLowerCase());
                            var t = options.toolbarText[e.toLowerCase()];
                            ul.append(menuItem(e.toLowerCase(), t || e, f));
                        }
                    } else {
                        ul.append(menuItem(e.css, e.text, e.action));
                    }
                }
            };
            if (options.toolbar.length !== 0 && priv.isArray(options.toolbar[0])) {
                for (var i = 0; i < options.toolbar.length; i++) {
                    addButtons(options.toolbar[i]);
                }
            } else {
                addButtons(options.toolbar);
            }
        },
        attachEditorEvents: function() {
            var t = this;

            var fnHA = function() {
                t.updateHtmlArea();
            };

            this.textarea.click(fnHA).
                keyup(fnHA).
                keydown(fnHA).
                mousedown(fnHA).
                blur(fnHA);



            var fnTA = function() {
                t.updateTextArea();
            };

            $(this.editor.body).click(fnTA).
                keyup(fnTA).
                keydown(fnTA).
                mousedown(fnTA).
                blur(fnTA);

            $('form').submit(function() { t.toggleHTMLView(); t.toggleHTMLView(); });
            //$(this.textarea[0].form).submit(function() { //this.textarea.closest("form").submit(function() {


            // Fix for ASP.NET Postback Model
            if (window.__doPostBack) {
                var old__doPostBack = __doPostBack;
                window.__doPostBack = function() {
                    if (t) {
                        if (t.toggleHTMLView) {
                            t.toggleHTMLView();
                            t.toggleHTMLView();
                        }
                    }
                    return old__doPostBack.apply(window, arguments);
                };
            }
            
        },
        isArray: function(v) {
            return v && typeof v === 'object' && typeof v.length === 'number' && typeof v.splice === 'function' && !(v.propertyIsEnumerable('length'));
        }
    };
})(jQuery);


================================================
FILE: app/assets/javascripts/vendor/jquery-1.6.4.js
================================================
/*! jQuery v1.6.4 http://jquery.com/ | http://jquery.org/license */
(function(a,b){function cu(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cr(a){if(!cg[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ch||(ch=c.createElement("iframe"),ch.frameBorder=ch.width=ch.height=0),b.appendChild(ch);if(!ci||!ch.createElement)ci=(ch.contentWindow||ch.contentDocument).document,ci.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),ci.close();d=ci.createElement(a),ci.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ch)}cg[a]=e}return cg[a]}function cq(a,b){var c={};f.each(cm.concat.apply([],cm.slice(0,b)),function(){c[this]=a});return c}function cp(){cn=b}function co(){setTimeout(cp,0);return cn=f.now()}function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ce(){try{return new a.XMLHttpRequest}catch(b){}}function b$(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function bZ(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function bY(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bA.test(a)?d(a,e):bY(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)bY(a+"["+e+"]",b[e],c,d);else d(a,b)}function bX(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function bW(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bP,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bW(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bW(a,c,d,e,"*",g));return l}function bV(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bL),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function by(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bt:bu;if(d>0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bv(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function bl(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bd,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bk(a){f.nodeName(a,"input")?bj(a):"getElementsByTagName"in a&&f.grep(a.getElementsByTagName("input"),bj)}function bj(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bi(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bh(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bg(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)f.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function bf(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function V(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(Q.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function U(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function M(a,b){return(a&&a!=="*"?a+".":"")+b.replace(y,"`").replace(z,"&")}function L(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;i<s.length;i++)g=s[i],g.origType.replace(w,"")===a.type?q.push(g.selector):s.splice(i--,1);e=f(a.target).closest(q,a.currentTarget);for(j=0,k=e.length;j<k;j++){m=e[j];for(i=0;i<s.length;i++){g=s[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,d=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,d=f(a.relatedTarget).closest(g.selector)[0],d&&f.contains(h,d)&&(d=h);(!d||d!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){e=p[j];if(c&&e.level>c)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function J(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function D(){return!0}function C(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function K(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(K,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*ve
Download .txt
gitextract_njqf0rgl/

├── .gitignore
├── .gitmodules
├── .mailmap
├── .rspec
├── AUTHORS
├── COPYING
├── Gemfile
├── INSTALL_ON_PRODUCTION
├── README
├── Rakefile
├── Shapado.prj
├── Shapado.ubuntu.fra.pui
├── UPGRADE
├── VERSION
├── app/
│   ├── assets/
│   │   ├── images/
│   │   │   └── src/
│   │   │       ├── point1.xcf
│   │   │       ├── point2.xcf
│   │   │       ├── point3.xcf
│   │   │       └── point4.xcf
│   │   ├── javascripts/
│   │   │   ├── app/
│   │   │   │   ├── initializers/
│   │   │   │   │   ├── assets.js
│   │   │   │   │   ├── init_dev.js
│   │   │   │   │   ├── init_modernizr.js
│   │   │   │   │   ├── retag.js
│   │   │   │   │   ├── search.js
│   │   │   │   │   ├── shapado_toolbar.js
│   │   │   │   │   └── single/
│   │   │   │   │       └── question.js
│   │   │   │   ├── main.js
│   │   │   │   └── modules/
│   │   │   │       ├── activities.js
│   │   │   │       ├── answers.js
│   │   │   │       ├── app_config.js
│   │   │   │       ├── authentication.js
│   │   │   │       ├── comments.js
│   │   │   │       ├── editor.js
│   │   │   │       ├── effects.js
│   │   │   │       ├── form.js
│   │   │   │       ├── geo.js
│   │   │   │       ├── groups.js
│   │   │   │       ├── invitations.js
│   │   │   │       ├── jqmath.js
│   │   │   │       ├── layout_editor.js
│   │   │   │       ├── loader.js
│   │   │   │       ├── local_storage.js
│   │   │   │       ├── members.js
│   │   │   │       ├── messages.js
│   │   │   │       ├── networks.js
│   │   │   │       ├── notifier.js
│   │   │   │       ├── pages.js
│   │   │   │       ├── plans.js
│   │   │   │       ├── questions.js
│   │   │   │       ├── rewards.js
│   │   │   │       ├── searches.js
│   │   │   │       ├── shapado_ui.js
│   │   │   │       ├── tags.js
│   │   │   │       ├── themes.js
│   │   │   │       ├── ui.js
│   │   │   │       ├── updater.js
│   │   │   │       ├── users.js
│   │   │   │       ├── utils.js
│   │   │   │       ├── votes.js
│   │   │   │       ├── websocket.js
│   │   │   │       └── widgets.js
│   │   │   ├── application-init.js
│   │   │   ├── application.js
│   │   │   ├── codemirror.js
│   │   │   ├── facebook_app/
│   │   │   │   ├── facebox/
│   │   │   │   │   ├── facebox.css
│   │   │   │   │   └── facebox.js
│   │   │   │   └── init.js
│   │   │   ├── i18n/
│   │   │   │   ├── af.js
│   │   │   │   ├── be-Tarask.js
│   │   │   │   ├── br.js
│   │   │   │   ├── ca.js
│   │   │   │   ├── da.js
│   │   │   │   ├── de.js
│   │   │   │   ├── el.js
│   │   │   │   ├── en.js
│   │   │   │   ├── eo.js
│   │   │   │   ├── es-419.js
│   │   │   │   ├── es.js
│   │   │   │   ├── fa.js
│   │   │   │   ├── fi.js
│   │   │   │   ├── fr.js
│   │   │   │   ├── fur.js
│   │   │   │   ├── gl.js
│   │   │   │   ├── he.js
│   │   │   │   ├── hu.js
│   │   │   │   ├── ia.js
│   │   │   │   ├── id.js
│   │   │   │   ├── ig.js
│   │   │   │   ├── it.js
│   │   │   │   ├── ja.js
│   │   │   │   ├── ksh.js
│   │   │   │   ├── lb.js
│   │   │   │   ├── mk.js
│   │   │   │   ├── ms.js
│   │   │   │   ├── nb.js
│   │   │   │   ├── nl.js
│   │   │   │   ├── pl.js
│   │   │   │   ├── pms.js
│   │   │   │   ├── pt-BR.js
│   │   │   │   ├── pt-PT.js
│   │   │   │   ├── qqq.js
│   │   │   │   ├── ru.js
│   │   │   │   ├── shi.js
│   │   │   │   ├── si.js
│   │   │   │   ├── sr-Latn.js
│   │   │   │   ├── sr.js
│   │   │   │   ├── sv.js
│   │   │   │   ├── te.js
│   │   │   │   ├── tl.js
│   │   │   │   ├── uk.js
│   │   │   │   ├── zh-CN.js
│   │   │   │   ├── zh-HANT.js
│   │   │   │   └── zh-TW.js
│   │   │   ├── magent_web.js
│   │   │   ├── mobile.js
│   │   │   ├── payments/
│   │   │   │   ├── application.js
│   │   │   │   └── payments.js
│   │   │   ├── shapadocom.js
│   │   │   └── vendor/
│   │   │       ├── ajax-chosen.js
│   │   │       ├── highlight/
│   │   │       │   └── prettify.js
│   │   │       ├── jHtmlArea.js
│   │   │       ├── jquery-1.6.4.js
│   │   │       ├── jquery.autovideo.js
│   │   │       ├── jquery.cookie.js
│   │   │       ├── jquery.droppy.js
│   │   │       ├── jquery.notifyBar.js
│   │   │       ├── jquery.pjax.js
│   │   │       ├── jquery.smart-poll.js
│   │   │       ├── jquery.textarea.js
│   │   │       ├── mathscribe/
│   │   │       │   ├── jqmath-0.1.1.css
│   │   │       │   ├── jqmath-0.1.1.js
│   │   │       │   └── jscurry-0.1.js
│   │   │       ├── polyfills/
│   │   │       │   ├── geolocation.js
│   │   │       │   └── json2.js
│   │   │       ├── showdown.js
│   │   │       └── web-socket-js/
│   │   │           ├── FABridge.js
│   │   │           ├── WebSocketMain.swf
│   │   │           ├── swfobject.js
│   │   │           └── web_socket.js
│   │   └── stylesheets/
│   │       ├── application.css
│   │       ├── codemirror.css
│   │       ├── components/
│   │       │   ├── announcements.css.sass
│   │       │   ├── badges.css.sass
│   │       │   ├── devise.css.sass
│   │       │   ├── doc.css.sass
│   │       │   ├── groups.css.sass
│   │       │   ├── history.css.sass
│   │       │   ├── invitations.css.sass
│   │       │   ├── invoices.css.sass
│   │       │   ├── manage.css.sass
│   │       │   ├── members.css.sass
│   │       │   ├── pages.css.sass
│   │       │   ├── plans.css.sass
│   │       │   ├── questions.css.sass
│   │       │   ├── themes.css.sass
│   │       │   ├── users.css.sass
│   │       │   └── widgets.css.sass
│   │       ├── general.css.sass
│   │       ├── helper/
│   │       │   ├── forms.css.sass
│   │       │   ├── items/
│   │       │   │   ├── comments.css.sass
│   │       │   │   ├── editors.css.sass
│   │       │   │   ├── markdown.css.sass
│   │       │   │   ├── menubar.css.sass
│   │       │   │   ├── tags.css.sass
│   │       │   │   └── widgets.css.sass
│   │       │   ├── items.css.sass
│   │       │   └── notifications.css.sass
│   │       ├── mobile.css.scss
│   │       ├── setup.sass
│   │       ├── shapadocom.css
│   │       └── structure/
│   │           ├── furniture.css.sass
│   │           ├── general.css.sass
│   │           └── layout.css.sass
│   ├── controllers/
│   │   ├── activities_controller.rb
│   │   ├── admin/
│   │   │   ├── manage_controller.rb
│   │   │   └── moderate_controller.rb
│   │   ├── announcements_controller.rb
│   │   ├── answers_controller.rb
│   │   ├── application_controller.rb
│   │   ├── badges_controller.rb
│   │   ├── close_requests_controller.rb
│   │   ├── comments_controller.rb
│   │   ├── constrains_configs_controller.rb
│   │   ├── doc_controller.rb
│   │   ├── facebook_controller.rb
│   │   ├── flags_controller.rb
│   │   ├── groups_controller.rb
│   │   ├── imports_controller.rb
│   │   ├── invitations_controller.rb
│   │   ├── invoices_controller.rb
│   │   ├── members_controller.rb
│   │   ├── mobile_controller.rb
│   │   ├── moderate/
│   │   │   ├── answers_controller.rb
│   │   │   ├── questions_controller.rb
│   │   │   └── users_controller.rb
│   │   ├── open_requests_controller.rb
│   │   ├── pages_controller.rb
│   │   ├── public_errors_controller.rb
│   │   ├── questions_controller.rb
│   │   ├── reward_controller.rb
│   │   ├── searches_controller.rb
│   │   ├── tags_controller.rb
│   │   ├── themes_controller.rb
│   │   ├── users_controller.rb
│   │   ├── votes_controller.rb
│   │   ├── welcome_controller.rb
│   │   └── widgets_controller.rb
│   ├── helpers/
│   │   ├── activities_helper.rb
│   │   ├── announcements_helper.rb
│   │   ├── answers_helper.rb
│   │   ├── application_helper.rb
│   │   ├── badges_helper.rb
│   │   ├── flags_helper.rb
│   │   ├── groups_helper.rb
│   │   ├── layout_helper.rb
│   │   ├── mobile_helper.rb
│   │   ├── pages_helper.rb
│   │   ├── questions_helper.rb
│   │   ├── searches_helper.rb
│   │   ├── sessions_helper.rb
│   │   ├── themes_helper.rb
│   │   ├── users_helper.rb
│   │   ├── votes_helper.rb
│   │   └── welcome_helper.rb
│   ├── middlewares/
│   │   └── dynamic_domain.rb
│   ├── models/
│   │   ├── activity.rb
│   │   ├── announcement.rb
│   │   ├── answer.rb
│   │   ├── badge.rb
│   │   ├── close_request.rb
│   │   ├── comment.rb
│   │   ├── constrains_config.rb
│   │   ├── custom_html.rb
│   │   ├── draft.rb
│   │   ├── export.rb
│   │   ├── external_friends_list.rb
│   │   ├── flag.rb
│   │   ├── follow_up.rb
│   │   ├── friend_list.rb
│   │   ├── geo_position.rb
│   │   ├── group.rb
│   │   ├── group_notification_config.rb
│   │   ├── group_stat.rb
│   │   ├── invitation.rb
│   │   ├── invoices/
│   │   │   ├── credit_card.rb
│   │   │   ├── invoice.rb
│   │   │   └── shapado_version.rb
│   │   ├── membership.rb
│   │   ├── notification_config.rb
│   │   ├── notifier.rb
│   │   ├── open_request.rb
│   │   ├── page.rb
│   │   ├── question.rb
│   │   ├── read_list.rb
│   │   ├── report.rb
│   │   ├── reputation_stat.rb
│   │   ├── reward.rb
│   │   ├── search.rb
│   │   ├── share.rb
│   │   ├── tag.rb
│   │   ├── tag_list.rb
│   │   ├── theme.rb
│   │   ├── user.rb
│   │   ├── user_stat.rb
│   │   ├── views_count.rb
│   │   ├── widget_list.rb
│   │   └── widgets/
│   │       ├── about_widget.rb
│   │       ├── adsense_widget.rb
│   │       ├── ask_question_widget.rb
│   │       ├── badges_widget.rb
│   │       ├── contributors_widget.rb
│   │       ├── current_tags_widget.rb
│   │       ├── custom_html_widget.rb
│   │       ├── group_networks_widget.rb
│   │       ├── groups_widget.rb
│   │       ├── pages_widget.rb
│   │       ├── question_badges_widget.rb
│   │       ├── related_questions_widget.rb
│   │       ├── share_widget.rb
│   │       ├── suggestions_widget.rb
│   │       ├── tag_cloud_widget.rb
│   │       ├── top_groups_widget.rb
│   │       ├── top_users_widget.rb
│   │       ├── users_widget.rb
│   │       └── widget.rb
│   ├── mustache/
│   │   ├── activity_wrapper.rb
│   │   ├── answer_form.rb
│   │   ├── answer_wrapper.rb
│   │   ├── ask_form.rb
│   │   ├── badge_wrapper.rb
│   │   ├── collection_wrapper.rb
│   │   ├── comment_wrapper.rb
│   │   ├── layouts/
│   │   │   └── theme_layout_view.rb
│   │   ├── model_wrapper.rb
│   │   ├── question_wrapper.rb
│   │   ├── questions/
│   │   │   ├── index_view.rb
│   │   │   └── show_view.rb
│   │   ├── tag_wrapper.rb
│   │   ├── theme_view_base.rb
│   │   └── user_wrapper.rb
│   └── views/
│       ├── activities/
│       │   ├── _activity.html.haml
│       │   └── index.html.haml
│       ├── admin/
│       │   ├── manage/
│       │   │   ├── _top_admin.html.haml
│       │   │   ├── access.html.haml
│       │   │   ├── actions.html.haml
│       │   │   ├── appearance.html.haml
│       │   │   ├── close_group.html.haml
│       │   │   ├── content.html.haml
│       │   │   ├── dashboard.html.haml
│       │   │   ├── edit_card.html.haml
│       │   │   ├── invitations.html.haml
│       │   │   ├── properties/
│       │   │   │   ├── _ask_from_twitter.html.haml
│       │   │   │   ├── _constrains.html.haml
│       │   │   │   ├── _domain.html.haml
│       │   │   │   ├── _facebook_app.html.haml
│       │   │   │   ├── _general.html.haml
│       │   │   │   ├── _invitations.html.haml
│       │   │   │   ├── _invite.html.haml
│       │   │   │   ├── _post_to_twitter.html.haml
│       │   │   │   ├── _rewards.html.haml
│       │   │   │   ├── _share.html.haml
│       │   │   │   ├── _subtabs.html.haml
│       │   │   │   ├── _tag_your_tweets.html.haml
│       │   │   │   └── _twitter_account.html.haml
│       │   │   ├── properties.html.haml
│       │   │   ├── social.html.haml
│       │   │   └── stats.html.haml
│       │   └── moderate/
│       │       ├── _top_moderate.html.haml
│       │       ├── index.html.haml
│       │       └── subtabs/
│       │           ├── _banned.html.haml
│       │           ├── _flagged_answers.html.haml
│       │           ├── _flagged_questions.html.haml
│       │           └── _retag.html.haml
│       ├── announcements/
│       │   ├── _form.html.haml
│       │   └── index.html.haml
│       ├── answers/
│       │   ├── _answer.html.haml
│       │   ├── _changes.html.haml
│       │   ├── _diff_actions.html.haml
│       │   ├── _edit_form.html.haml
│       │   ├── _editor.html.haml
│       │   ├── _form.html.haml
│       │   ├── diff.html.haml
│       │   ├── edit.html.haml
│       │   ├── flag.html.haml
│       │   ├── history.html.haml
│       │   ├── index.html.haml
│       │   ├── revert.html.haml
│       │   ├── show.html.haml
│       │   └── show.mobile.haml
│       ├── badges/
│       │   ├── _badge.html.haml
│       │   ├── _user.html.haml
│       │   ├── index.html.haml
│       │   └── show.html.haml
│       ├── close_requests/
│       │   ├── _form.html.haml
│       │   ├── _list.html.haml
│       │   ├── edit.html.haml
│       │   ├── index.html.haml
│       │   └── new.html.haml
│       ├── comments/
│       │   ├── _comment.html.haml
│       │   ├── _edit_form.html.haml
│       │   ├── _form.html.haml
│       │   ├── _form.mobile.haml
│       │   ├── create.js.erb
│       │   ├── edit.html.haml
│       │   ├── edit.js.erb
│       │   ├── show_errors.js.erb
│       │   └── update.js.erb
│       ├── constrains_configs/
│       │   ├── _form.html.haml
│       │   ├── edit.html.haml
│       │   ├── index.html.haml
│       │   └── new.html.haml
│       ├── devise/
│       │   ├── confirmations/
│       │   │   └── new.html.haml
│       │   ├── passwords/
│       │   │   ├── edit.html.haml
│       │   │   └── new.html.haml
│       │   ├── registrations/
│       │   │   ├── edit.html.haml
│       │   │   └── new.html.haml
│       │   ├── sessions/
│       │   │   ├── _login.html.haml
│       │   │   ├── _openid.html.haml
│       │   │   ├── new.html.haml
│       │   │   └── new.mobile.haml
│       │   └── unlocks/
│       │       └── new.html.haml
│       ├── devise_mailer/
│       │   ├── confirmation_instructions.html.haml
│       │   ├── reset_password_instructions.html.haml
│       │   └── unlock_instructions.html.haml
│       ├── doc/
│       │   ├── chat.html.haml
│       │   ├── plans.html.haml
│       │   ├── privacy.html.haml
│       │   ├── privacy_en.html.haml
│       │   ├── privacy_ja.html.haml
│       │   ├── tos.html.haml
│       │   ├── tos_en.html.haml
│       │   └── tos_ja.html.haml
│       ├── facebook/
│       │   ├── _answer.html.haml
│       │   ├── _enable_page.html.haml
│       │   ├── _form.html.haml
│       │   ├── _question.html.haml
│       │   ├── _user.html.haml
│       │   └── index.html.haml
│       ├── flags/
│       │   ├── _answer.html.haml
│       │   ├── _comment.html.haml
│       │   ├── _form.html.haml
│       │   ├── _list.html.haml
│       │   ├── _question.html.haml
│       │   ├── edit.html.haml
│       │   └── new.html.haml
│       ├── groups/
│       │   ├── _form.html.haml
│       │   ├── _group.html.haml
│       │   ├── _reputation_constrains_form.haml
│       │   ├── _reputation_rewards_form.haml
│       │   ├── _top_grouplist.html.haml
│       │   ├── check_custom_domain.html.haml
│       │   ├── edit.html.haml
│       │   ├── index.html.haml
│       │   ├── new.html.haml
│       │   ├── show.html.haml
│       │   └── upgrade.html.haml
│       ├── imports/
│       │   ├── index.html.haml
│       │   └── subtabs/
│       │       └── _need_confirmation.html.haml
│       ├── invitations/
│       │   └── accept.html.haml
│       ├── invoices/
│       │   ├── _form.html.haml
│       │   ├── _invoice.html.haml
│       │   ├── edit.html.haml
│       │   ├── index.html.haml
│       │   ├── show.html.haml
│       │   ├── success.html.haml
│       │   └── upcoming.html.haml
│       ├── kaminari/
│       │   ├── _first_page.mobile.haml
│       │   ├── _gap.mobile.haml
│       │   ├── _last_page.mobile.haml
│       │   ├── _next_page.mobile.haml
│       │   ├── _page.mobile.haml
│       │   ├── _paginator.mobile.haml
│       │   └── _prev_page.mobile.haml
│       ├── layouts/
│       │   ├── application.html.haml
│       │   ├── classic.html.haml
│       │   ├── doc.html.haml
│       │   ├── facebook.html.haml
│       │   ├── invitations.html.haml
│       │   ├── manage.html.haml
│       │   ├── mobile.mobile.haml
│       │   ├── notifications.html.haml
│       │   ├── notifications.text.haml
│       │   ├── plans.html.haml
│       │   ├── printing.html.haml
│       │   ├── sessions.html.haml
│       │   ├── shapadocom.html.haml
│       │   └── theme_layout.mustache.mustache
│       ├── members/
│       │   ├── _member.html.haml
│       │   └── index.html.haml
│       ├── moderate/
│       │   ├── answers/
│       │   │   ├── _subtabs.html.haml
│       │   │   ├── banning.html.haml
│       │   │   └── index.html.haml
│       │   ├── questions/
│       │   │   ├── _closing_form.html.haml
│       │   │   ├── _opening_form.html.haml
│       │   │   ├── _subtabs.html.haml
│       │   │   ├── banning.html.haml
│       │   │   ├── closing.html.haml
│       │   │   ├── flagged.html.haml
│       │   │   ├── index.html.haml
│       │   │   ├── opening.html.haml
│       │   │   ├── to_close.html.haml
│       │   │   └── to_open.html.haml
│       │   ├── shared/
│       │   │   └── _banning_form.html.haml
│       │   └── users/
│       │       ├── _subtabs.html.haml
│       │       └── index.html.haml
│       ├── notifications/
│       │   ├── _notification_item.html.haml
│       │   └── _notifications_menu.html.haml
│       ├── notifier/
│       │   ├── admin_login.text.haml
│       │   ├── created_flag.html.haml
│       │   ├── created_flag.text.haml
│       │   ├── earned_badge.html.haml
│       │   ├── earned_badge.text.haml
│       │   ├── favorited.html.haml
│       │   ├── favorited.text.haml
│       │   ├── follow.html.haml
│       │   ├── follow.text.haml
│       │   ├── give_advice.html.haml
│       │   ├── give_advice.text.haml
│       │   ├── new_answer.html.haml
│       │   ├── new_answer.text.haml
│       │   ├── new_comment.html.haml
│       │   ├── new_comment.text.haml
│       │   ├── new_feedback.text.haml
│       │   ├── new_invitation.html.haml
│       │   ├── new_invitation.text.haml
│       │   └── report.text.haml
│       ├── open_requests/
│       │   ├── _form.html.haml
│       │   ├── _list.html.haml
│       │   ├── edit.html.haml
│       │   ├── index.html.haml
│       │   └── new.html.haml
│       ├── pages/
│       │   ├── _form.html.haml
│       │   ├── edit.html.haml
│       │   ├── index.html.haml
│       │   ├── new.html.haml
│       │   └── show.html.haml
│       ├── public_errors/
│       │   ├── forbidden.html.haml
│       │   ├── internal_server_error.html.haml
│       │   ├── not_found.html.haml
│       │   └── unprocessable_entity.html.haml
│       ├── questions/
│       │   ├── _answer.html.haml
│       │   ├── _answer.mobile.haml
│       │   ├── _answer_toolbar.html.haml
│       │   ├── _answered_by.html.haml
│       │   ├── _answered_by.mobile.haml
│       │   ├── _attachment_editor.html.haml
│       │   ├── _attachments.html.haml
│       │   ├── _changes.html.haml
│       │   ├── _diff_actions.html.haml
│       │   ├── _editor.html.haml
│       │   ├── _followup_form.html.haml
│       │   ├── _form.html.haml
│       │   ├── _nav_filters.html.haml
│       │   ├── _question.html.haml
│       │   ├── _requests_menu.html.haml
│       │   ├── _retag_form.haml
│       │   ├── _reward_form.html.haml
│       │   ├── _reward_info.html.haml
│       │   ├── _toolbar.html.haml
│       │   ├── diff.html.haml
│       │   ├── edit.html.haml
│       │   ├── flag.html.haml
│       │   ├── history.html.haml
│       │   ├── index.atom.builder
│       │   ├── index.html.haml
│       │   ├── index.mobile.haml
│       │   ├── index.mustache.mustache
│       │   ├── move.html.haml
│       │   ├── new.html.haml
│       │   ├── new.mobile.haml
│       │   ├── retag.html.haml
│       │   ├── revert.html.haml
│       │   ├── share/
│       │   │   ├── _facebook.html.haml
│       │   │   ├── _identica.html.haml
│       │   │   ├── _linkedin.html.haml
│       │   │   ├── _shapado.html.haml
│       │   │   ├── _think.html.haml
│       │   │   └── _twitter.html.haml
│       │   ├── show.atom.builder
│       │   ├── show.html.haml
│       │   ├── show.mobile.haml
│       │   └── show.mustache.mustache
│       ├── searches/
│       │   ├── _form.html.haml
│       │   ├── _question.html.haml
│       │   ├── _search_box.html.haml
│       │   ├── index.html.haml
│       │   └── show.html.haml
│       ├── shared/
│       │   ├── _action-tabs.html.haml
│       │   ├── _analytics.haml
│       │   ├── _content-nav.html.haml
│       │   ├── _default_adsense.haml
│       │   ├── _devise_links.html.haml
│       │   ├── _editor.html.haml
│       │   ├── _empty.html.haml
│       │   ├── _error.html.haml
│       │   ├── _external_widget_settings.haml
│       │   ├── _flags.html.haml
│       │   ├── _isolate_topbar.html.haml
│       │   ├── _language_filter.html.haml
│       │   ├── _login_drop_down.html.haml
│       │   ├── _login_menu.html.haml
│       │   ├── _manage_navigation.html.haml
│       │   ├── _moderate_navigation.html.haml
│       │   ├── _networks.html.haml
│       │   ├── _pagination.html.haml
│       │   ├── _post.html.haml
│       │   ├── _posts.html.haml
│       │   ├── _preferred_tags.html.haml
│       │   ├── _quick_question_box.html.haml
│       │   ├── _social_connect.haml
│       │   ├── _suggestions.haml
│       │   ├── _tag_cloud.html.haml
│       │   ├── _tag_list.html.haml
│       │   ├── _topbar.html.haml
│       │   ├── _user-zone.html.haml:.user-zone.module.not_used
│       │   ├── _user_navigation.html.haml
│       │   ├── _vote_box.html.haml
│       │   ├── _widgets.html.haml
│       │   ├── layout/
│       │   │   ├── _activities.html.haml
│       │   │   ├── _column1.html.haml
│       │   │   ├── _column2.html.haml
│       │   │   ├── _column3.html.haml
│       │   │   ├── _css.html.haml
│       │   │   ├── _feed_urls.html.haml
│       │   │   ├── _feeds.html.haml
│       │   │   ├── _footer.html.haml
│       │   │   ├── _head.html.haml
│       │   │   ├── _header.html.haml
│       │   │   ├── _javascript.html.haml
│       │   │   ├── _meta.html.haml
│       │   │   ├── _notice.html.haml
│       │   │   └── _websocket.html.haml
│       │   └── mobile/
│       │       └── _header_actions.mobile.haml
│       ├── tags/
│       │   ├── _form.html.haml
│       │   ├── _show_json.haml
│       │   ├── _tag.html.haml
│       │   ├── _tag_table.html.haml
│       │   ├── edit.html.haml
│       │   ├── index.html.haml
│       │   ├── new.html.haml
│       │   └── show.html.haml
│       ├── themes/
│       │   ├── _form.html.haml
│       │   ├── _theme.html.haml
│       │   ├── edit.html.haml
│       │   ├── index.html.haml
│       │   ├── new.html.haml
│       │   └── show.html.haml
│       ├── users/
│       │   ├── _anonymous_form.html.haml
│       │   ├── _content-nav.html.haml
│       │   ├── _content_nav.html-haml
│       │   ├── _form.html.haml
│       │   ├── _membership.html.haml
│       │   ├── _top_user.html.haml
│       │   ├── _user.html.haml
│       │   ├── _user_bar.html.haml
│       │   ├── _user_data.html.haml
│       │   ├── _user_mini.html.haml
│       │   ├── edit.html.haml
│       │   ├── index.html.haml
│       │   ├── new.html.haml
│       │   ├── show/
│       │   │   ├── _show_json.haml
│       │   │   ├── _user_activity_content.html.haml
│       │   │   ├── _user_activity_filters.html.haml
│       │   │   ├── _user_answers_content.html.haml
│       │   │   ├── _user_answers_filters.html.haml
│       │   │   ├── _user_follows_content.html.haml
│       │   │   ├── _user_follows_filters.html.haml
│       │   │   ├── _user_show_content.html.haml
│       │   │   └── _user_show_filters.html.haml
│       │   ├── show.atom.builder
│       │   ├── show.html.haml
│       │   ├── show.mobile.haml
│       │   ├── social_connect.html.haml
│       │   └── suggestions.html.haml
│       ├── welcome/
│       │   ├── _feedback.haml
│       │   ├── _question.html.haml
│       │   ├── confirm_age.html.haml
│       │   ├── feedback.html.haml
│       │   ├── index.atom.builder
│       │   └── index.html.haml
│       ├── widgets/
│       │   ├── _about.html.haml
│       │   ├── _about_settings.html.haml
│       │   ├── _adbard_settings.html.haml
│       │   ├── _adsense.html.haml
│       │   ├── _adsense_settings.html.haml
│       │   ├── _ask_question.html.haml
│       │   ├── _ask_question_settings.html.haml
│       │   ├── _badges.html.haml
│       │   ├── _badges_settings.html.haml
│       │   ├── _contributors.html.haml
│       │   ├── _contributors_settings.html.haml
│       │   ├── _current_tags.html.haml
│       │   ├── _current_tags_settings.html.haml
│       │   ├── _custom_html.html.haml
│       │   ├── _custom_html_settings.html.haml
│       │   ├── _form.html.haml
│       │   ├── _group_networks.html.haml
│       │   ├── _group_networks_settings.html.haml
│       │   ├── _groups.html.haml
│       │   ├── _groups_settings.html.haml
│       │   ├── _header.html.haml
│       │   ├── _pages.html.haml
│       │   ├── _pages_settings.html.haml
│       │   ├── _question_badges.html.haml
│       │   ├── _question_badges_settings.html.haml
│       │   ├── _related_questions.html.haml
│       │   ├── _related_questions_settings.html.haml
│       │   ├── _share.html.haml
│       │   ├── _share_settings.html.haml
│       │   ├── _suggestions.haml
│       │   ├── _suggestions_settings.haml
│       │   ├── _tag_cloud.html.haml
│       │   ├── _tag_cloud_settings.html.haml
│       │   ├── _top_groups.html.haml
│       │   ├── _top_groups_settings.html.haml
│       │   ├── _top_users.html.haml
│       │   ├── _top_users_settings.html.haml
│       │   ├── _users.html.haml
│       │   ├── _users_settings.html.haml
│       │   ├── _widget.html.haml
│       │   ├── edit.html.haml
│       │   ├── embedded.html.haml
│       │   └── index.html.haml
│       └── wiki/
│           ├── _changes.html.haml
│           ├── _diff.html.haml
│           └── _version.html.haml
├── autotest/
│   └── discover.rb
├── config/
│   ├── application.rb
│   ├── assets.yml
│   ├── auth_providers.yml.sample
│   ├── boot.rb
│   ├── compass.config
│   ├── default_reputation.yml
│   ├── deploy.rb.sample
│   ├── environment.rb
│   ├── environments/
│   │   ├── development.rb
│   │   ├── production.rb
│   │   ├── staging.rb
│   │   └── test.rb
│   ├── initializers/
│   │   ├── 00_config.rb
│   │   ├── 01_locales.rb
│   │   ├── 03_themes.rb
│   │   ├── _mongoid_patches.rb
│   │   ├── active_tab.rb
│   │   ├── backtrace_silencers.rb
│   │   ├── compass.rb
│   │   ├── constants.rb
│   │   ├── devise.rb
│   │   ├── exceptions.rb
│   │   ├── flash_helper.rb
│   │   ├── geoip.rb
│   │   ├── inflections.rb
│   │   ├── kaminari_config.rb
│   │   ├── logger.rb
│   │   ├── mime_types.rb
│   │   ├── mongo.rb
│   │   ├── patches.rb
│   │   ├── payments.rb
│   │   └── session_store.rb
│   ├── load_config.rb
│   ├── locales/
│   │   ├── activities/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── de.yml
│   │   │   ├── en.yml
│   │   │   ├── es.yml
│   │   │   ├── fi.yml
│   │   │   ├── fo.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── lt.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── ne.yml
│   │   │   ├── nl.yml
│   │   │   ├── pl.yml
│   │   │   ├── ps.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── qqq.yml
│   │   │   ├── roa-tara.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── ta.yml
│   │   │   ├── tl.yml
│   │   │   ├── tr.yml
│   │   │   └── zh-CN.yml
│   │   ├── announcements/
│   │   │   ├── af.yml
│   │   │   ├── ar.yml
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── diq.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fo.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── haw.yml
│   │   │   ├── hr.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── km.yml
│   │   │   ├── ko.yml
│   │   │   ├── lb.yml
│   │   │   ├── lt.yml
│   │   │   ├── mk.yml
│   │   │   ├── mr.yml
│   │   │   ├── ms.yml
│   │   │   ├── my.yml
│   │   │   ├── nb.yml
│   │   │   ├── ne.yml
│   │   │   ├── nl.yml
│   │   │   ├── pl.yml
│   │   │   ├── pms.yml
│   │   │   ├── ps.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── qqq.yml
│   │   │   ├── roa-tara.yml
│   │   │   ├── ru.yml
│   │   │   ├── sah.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── ta.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   ├── tr.yml
│   │   │   └── zh-CN.yml
│   │   ├── answers/
│   │   │   ├── af.yml
│   │   │   ├── ar.yml
│   │   │   ├── az.yml
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fo.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl.yml
│   │   │   ├── haw.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── lb.yml
│   │   │   ├── lt.yml
│   │   │   ├── mk.yml
│   │   │   ├── mr.yml
│   │   │   ├── ms.yml
│   │   │   ├── my.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pl.yml
│   │   │   ├── ps.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── roa-tara.yml
│   │   │   ├── ru.yml
│   │   │   ├── sah.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── ta.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   ├── tr.yml
│   │   │   └── zh-CN.yml
│   │   ├── badges/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nl.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── cldr_lang/
│   │   │   ├── af.yml
│   │   │   ├── am.yml
│   │   │   ├── ar.yml
│   │   │   ├── as.yml
│   │   │   ├── az-Cyrl.yml
│   │   │   ├── az.yml
│   │   │   ├── be-Tarask.yml
│   │   │   ├── be.yml
│   │   │   ├── bg.yml
│   │   │   ├── bn-IN.yml
│   │   │   ├── bn.yml
│   │   │   ├── bo.yml
│   │   │   ├── bs.yml
│   │   │   ├── ca.yml
│   │   │   ├── cs.yml
│   │   │   ├── cy.yml
│   │   │   ├── da.yml
│   │   │   ├── de-CH.yml
│   │   │   ├── de.yml
│   │   │   ├── el-POLYTON.yml
│   │   │   ├── el.yml
│   │   │   ├── en-Dsrt.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── et.yml
│   │   │   ├── eu.yml
│   │   │   ├── fa-AF.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fil.yml
│   │   │   ├── fo.yml
│   │   │   ├── fr.yml
│   │   │   ├── ga.yml
│   │   │   ├── gl.yml
│   │   │   ├── gsw.yml
│   │   │   ├── gu.yml
│   │   │   ├── gv.yml
│   │   │   ├── ha.yml
│   │   │   ├── haw.yml
│   │   │   ├── he.yml
│   │   │   ├── hi.yml
│   │   │   ├── hr.yml
│   │   │   ├── hu.yml
│   │   │   ├── hy.yml
│   │   │   ├── id.yml
│   │   │   ├── ii.yml
│   │   │   ├── is.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ka.yml
│   │   │   ├── kk.yml
│   │   │   ├── kl.yml
│   │   │   ├── km.yml
│   │   │   ├── kn.yml
│   │   │   ├── ko.yml
│   │   │   ├── kok.yml
│   │   │   ├── kw.yml
│   │   │   ├── ky.yml
│   │   │   ├── ln.yml
│   │   │   ├── lt.yml
│   │   │   ├── lv.yml
│   │   │   ├── mk.yml
│   │   │   ├── ml.yml
│   │   │   ├── mn.yml
│   │   │   ├── mr.yml
│   │   │   ├── ms.yml
│   │   │   ├── mt.yml
│   │   │   ├── my.yml
│   │   │   ├── nb.yml
│   │   │   ├── ne.yml
│   │   │   ├── nl-BE.yml
│   │   │   ├── nl.yml
│   │   │   ├── nn.yml
│   │   │   ├── nr.yml
│   │   │   ├── nso.yml
│   │   │   ├── om.yml
│   │   │   ├── or.yml
│   │   │   ├── pa-Arab.yml
│   │   │   ├── pa.yml
│   │   │   ├── pl.yml
│   │   │   ├── ps.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── pt.yml
│   │   │   ├── ro.yml
│   │   │   ├── ru-UA.yml
│   │   │   ├── ru.yml
│   │   │   ├── sa.yml
│   │   │   ├── se-FI.yml
│   │   │   ├── si.yml
│   │   │   ├── sk.yml
│   │   │   ├── sl.yml
│   │   │   ├── so.yml
│   │   │   ├── sq.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── ss.yml
│   │   │   ├── st.yml
│   │   │   ├── sv.yml
│   │   │   ├── sw.yml
│   │   │   ├── ta.yml
│   │   │   ├── te.yml
│   │   │   ├── tg.yml
│   │   │   ├── th.yml
│   │   │   ├── ti.yml
│   │   │   ├── tl.yml
│   │   │   ├── tn.yml
│   │   │   ├── tr.yml
│   │   │   ├── trv.yml
│   │   │   ├── ts.yml
│   │   │   ├── uk.yml
│   │   │   ├── ur.yml
│   │   │   ├── uz-Arab.yml
│   │   │   ├── uz-Latn.yml
│   │   │   ├── uz.yml
│   │   │   ├── ve.yml
│   │   │   ├── vi.yml
│   │   │   ├── xh.yml
│   │   │   ├── yo.yml
│   │   │   ├── zh-Hant-HK.yml
│   │   │   ├── zh-Hant.yml
│   │   │   ├── zh.yml
│   │   │   └── zu.yml
│   │   ├── close_requests/
│   │   │   ├── af.yml
│   │   │   ├── ar.yml
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nl.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── roa-tara.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── comments/
│   │   │   ├── af.yml
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── diq.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── lb.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pl.yml
│   │   │   ├── pms.yml
│   │   │   ├── ps.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── qqq.yml
│   │   │   ├── roa-tara.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── ta.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── constrains_config/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── ca.yml
│   │   │   ├── de.yml
│   │   │   ├── en.yml
│   │   │   ├── es.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── it.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nl.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   └── tl.yml
│   │   ├── custom_html/
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── es.yml
│   │   │   ├── fr.yml
│   │   │   ├── ja.yml
│   │   │   └── pt.yml
│   │   ├── default/
│   │   │   ├── ar.yml
│   │   │   ├── az.yml
│   │   │   ├── bg.yml
│   │   │   ├── bn-IN.yml
│   │   │   ├── bs.yml
│   │   │   ├── ca.yml
│   │   │   ├── cs.yml
│   │   │   ├── csb.yml
│   │   │   ├── cy.yml
│   │   │   ├── da.yml
│   │   │   ├── de-AT.yml
│   │   │   ├── de-CH.yml
│   │   │   ├── de.yml
│   │   │   ├── dsb.yml
│   │   │   ├── el.yml
│   │   │   ├── en-AU.yml
│   │   │   ├── en-CA.yml
│   │   │   ├── en-GB.yml
│   │   │   ├── en-IN.yml
│   │   │   ├── en-US.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es-AR.yml
│   │   │   ├── es-CL.yml
│   │   │   ├── es-CO.yml
│   │   │   ├── es-MX.yml
│   │   │   ├── es-PE.yml
│   │   │   ├── es.yml
│   │   │   ├── et.yml
│   │   │   ├── eu.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr-CA.yml
│   │   │   ├── fr-CH.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl-ES.yml
│   │   │   ├── gsw.yml
│   │   │   ├── he.yml
│   │   │   ├── hi-IN.yml
│   │   │   ├── hi.yml
│   │   │   ├── hr.yml
│   │   │   ├── hsb.yml
│   │   │   ├── hu.yml
│   │   │   ├── id.yml
│   │   │   ├── is.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── kn.yml
│   │   │   ├── ko.yml
│   │   │   ├── lo.yml
│   │   │   ├── lt.yml
│   │   │   ├── lv.yml
│   │   │   ├── mk.yml
│   │   │   ├── mn.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── nn.yml
│   │   │   ├── pl.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── rm.yml
│   │   │   ├── ro.yml
│   │   │   ├── ru.yml
│   │   │   ├── sk.yml
│   │   │   ├── sl.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv-SE.yml
│   │   │   ├── sw.yml
│   │   │   ├── th.yml
│   │   │   ├── tl.yml
│   │   │   ├── tr.yml
│   │   │   ├── uk.yml
│   │   │   ├── vi.yml
│   │   │   ├── wo.yml
│   │   │   ├── zh-CN.yml
│   │   │   └── zh-TW.yml
│   │   ├── devise/
│   │   │   ├── devise.be-Tarask.yml
│   │   │   ├── devise.br.yml
│   │   │   ├── devise.ca.yml
│   │   │   ├── devise.da.yml
│   │   │   ├── devise.de.yml
│   │   │   ├── devise.el.yml
│   │   │   ├── devise.en.yml
│   │   │   ├── devise.eo.yml
│   │   │   ├── devise.es.yml
│   │   │   ├── devise.fa.yml
│   │   │   ├── devise.fi.yml
│   │   │   ├── devise.fr.yml
│   │   │   ├── devise.gl.yml
│   │   │   ├── devise.hu.yml
│   │   │   ├── devise.ia.yml
│   │   │   ├── devise.it.yml
│   │   │   ├── devise.ja.yml
│   │   │   ├── devise.mk.yml
│   │   │   ├── devise.ms.yml
│   │   │   ├── devise.nl.yml
│   │   │   ├── devise.pt-BR.yml
│   │   │   ├── devise.pt-PT.yml
│   │   │   ├── devise.ru.yml
│   │   │   ├── devise.sr-Latn.yml
│   │   │   ├── devise.sr.yml
│   │   │   ├── devise.sv.yml
│   │   │   ├── devise.tl.yml
│   │   │   └── devise.zh-CN.yml
│   │   ├── doc/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── errors/
│   │   │   ├── af.yml
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── lb.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── favorites/
│   │   │   ├── af.yml
│   │   │   ├── az.yml
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── lb.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pl.yml
│   │   │   ├── pms.yml
│   │   │   ├── ps.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── qqq.yml
│   │   │   ├── roa-tara.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── flags/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nl.yml
│   │   │   ├── pms.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   ├── tt.yml
│   │   │   └── zh-CN.yml
│   │   ├── global/
│   │   │   ├── af.yml
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pl.yml
│   │   │   ├── ps.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── qqq.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── groups/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nl.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── imports/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── bs.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── he.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── lb.yml
│   │   │   ├── lv.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pl.yml
│   │   │   ├── pms.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── si.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── invitations/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── ca.yml
│   │   │   ├── de.yml
│   │   │   ├── en.yml
│   │   │   ├── es.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── ia.yml
│   │   │   ├── it.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nl.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   └── tl.yml
│   │   ├── invoices/
│   │   │   └── en.yml
│   │   ├── jobs/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── ca.yml
│   │   │   ├── de.yml
│   │   │   ├── en.yml
│   │   │   ├── es.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── ia.yml
│   │   │   ├── it.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nl.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   └── tl.yml
│   │   ├── layouts/
│   │   │   ├── af.yml
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nl.yml
│   │   │   ├── pl.yml
│   │   │   ├── ps.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── mailers/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pms.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── manage/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nl.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── members/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── lb.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pms.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── moderate/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── lb.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nl.yml
│   │   │   ├── pms.yml
│   │   │   ├── ps.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── notifier/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── it.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   └── tl.yml
│   │   ├── open_requests/
│   │   │   ├── af.yml
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── bs.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── en.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── it.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nl.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── pages/
│   │   │   ├── ar.yml
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── diq.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── ig.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── ku-Latn.yml
│   │   │   ├── lb.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pl.yml
│   │   │   ├── ps.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── questions/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── eo.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nl.yml
│   │   │   ├── pl.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── qqq.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── rewards/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── ca.yml
│   │   │   ├── de.yml
│   │   │   ├── en.yml
│   │   │   ├── es.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── it.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nl.yml
│   │   │   ├── sr-Latn.yml
│   │   │   └── sr.yml
│   │   ├── searches/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nl.yml
│   │   │   ├── pms.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── sessions/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pl.yml
│   │   │   ├── ps.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── szl.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── shared/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pl.yml
│   │   │   ├── pms.yml
│   │   │   ├── ps.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── si.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── szl.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── tags/
│   │   │   └── en.yml
│   │   ├── themes/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── ca.yml
│   │   │   ├── de.yml
│   │   │   ├── en.yml
│   │   │   ├── es.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── it.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nl.yml
│   │   │   ├── sr-Latn.yml
│   │   │   └── sr.yml
│   │   ├── unfavorites/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── diq.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pl.yml
│   │   │   ├── pms.yml
│   │   │   ├── ps.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── qqq.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── users/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── lb.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pl.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── versions/
│   │   │   └── en.yml
│   │   ├── votes/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── ne.yml
│   │   │   ├── nl.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   ├── welcome/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── fur.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── id.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pl.yml
│   │   │   ├── ps.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   ├── tr.yml
│   │   │   └── zh-CN.yml
│   │   ├── widgets/
│   │   │   ├── be-Tarask.yml
│   │   │   ├── br.yml
│   │   │   ├── ca.yml
│   │   │   ├── da.yml
│   │   │   ├── de.yml
│   │   │   ├── el.yml
│   │   │   ├── en.yml
│   │   │   ├── es-419.yml
│   │   │   ├── es.yml
│   │   │   ├── fa.yml
│   │   │   ├── fi.yml
│   │   │   ├── fr.yml
│   │   │   ├── gl.yml
│   │   │   ├── hu.yml
│   │   │   ├── ia.yml
│   │   │   ├── it.yml
│   │   │   ├── ja.yml
│   │   │   ├── ko.yml
│   │   │   ├── mk.yml
│   │   │   ├── ms.yml
│   │   │   ├── nb.yml
│   │   │   ├── nl.yml
│   │   │   ├── pl.yml
│   │   │   ├── pt-BR.yml
│   │   │   ├── pt-PT.yml
│   │   │   ├── ru.yml
│   │   │   ├── sr-Latn.yml
│   │   │   ├── sr.yml
│   │   │   ├── sv.yml
│   │   │   ├── te.yml
│   │   │   ├── tl.yml
│   │   │   └── zh-CN.yml
│   │   └── wiki/
│   │       ├── be-Tarask.yml
│   │       ├── br.yml
│   │       ├── ca.yml
│   │       ├── da.yml
│   │       ├── de.yml
│   │       ├── el.yml
│   │       ├── en.yml
│   │       ├── es-419.yml
│   │       ├── es.yml
│   │       ├── fa.yml
│   │       ├── fi.yml
│   │       ├── fr.yml
│   │       ├── fur.yml
│   │       ├── gl.yml
│   │       ├── hu.yml
│   │       ├── ia.yml
│   │       ├── id.yml
│   │       ├── it.yml
│   │       ├── ja.yml
│   │       ├── ko.yml
│   │       ├── lb.yml
│   │       ├── lt.yml
│   │       ├── mk.yml
│   │       ├── ms.yml
│   │       ├── nb.yml
│   │       ├── nl.yml
│   │       ├── pl.yml
│   │       ├── pms.yml
│   │       ├── pt-BR.yml
│   │       ├── pt-PT.yml
│   │       ├── ru.yml
│   │       ├── sl.yml
│   │       ├── sr-Latn.yml
│   │       ├── sr.yml
│   │       ├── sv.yml
│   │       ├── te.yml
│   │       ├── tl.yml
│   │       ├── tr.yml
│   │       └── zh-CN.yml
│   ├── magent.yml
│   ├── mongoid.yml.sample
│   ├── newrelic.yml.sample
│   ├── payments.yml.sample
│   ├── pills/
│   │   └── websocket.pill.erb
│   ├── reputation.yml
│   ├── routes.rb
│   ├── schedule.rb
│   ├── shapado.yml.sample
│   ├── share_links.yml
│   ├── unicorn/
│   │   ├── bluepill.rb
│   │   ├── nginx.conf
│   │   ├── postfix-main.cf
│   │   └── unicorn.rb
│   ├── versions.yml
│   └── xapit.yml
├── config.ru
├── data/
│   └── countries.json
├── db/
│   ├── fixtures/
│   │   └── pages/
│   │       ├── faq.el.markdown
│   │       ├── faq.en.markdown
│   │       ├── faq.es.markdown
│   │       ├── faq.fr.markdown
│   │       └── faq.pt.markdown
│   └── seeds.rb
├── doc/
│   └── README_FOR_APP
├── lib/
│   ├── assets/
│   │   └── stylesheets/
│   │       └── multiauth.css
│   ├── fixed_array.rb
│   ├── flash_helper/
│   │   ├── application.rb
│   │   └── application_helper.rb
│   ├── jobs/
│   │   ├── activities.rb
│   │   ├── answers.rb
│   │   ├── base.rb
│   │   ├── images.rb
│   │   ├── mailer.rb
│   │   ├── questions.rb
│   │   ├── tags.rb
│   │   ├── themes.rb
│   │   ├── users.rb
│   │   └── votes.rb
│   ├── level_system.rb
│   ├── multiauth_support.rb
│   ├── nominatim.rb
│   ├── sass/
│   │   ├── generals.scss
│   │   ├── items.scss
│   │   ├── layout.scss
│   │   ├── theme_template.scss
│   │   └── widgets.scss
│   ├── shapado/
│   │   ├── controllers/
│   │   │   ├── access.rb
│   │   │   ├── locale.rb
│   │   │   ├── routes.rb
│   │   │   └── utils.rb
│   │   ├── file_wrapper.rb
│   │   ├── models/
│   │   │   ├── custom_html_methods.rb
│   │   │   ├── geo_common.rb
│   │   │   ├── networks.rb
│   │   │   └── trackable.rb
│   │   └── scripting/
│   │       ├── application.rb
│   │       └── easy_loader.rb
│   ├── smtp_tls.rb
│   ├── sso_strategy.rb
│   ├── subdomains.rb
│   ├── sweepers.rb
│   ├── tasks/
│   │   ├── fix_db.rake
│   │   ├── jsassets.rake
│   │   ├── populator.rake
│   │   ├── setup.rake
│   │   ├── shapado3-to-4.rake
│   │   └── shapado40to41.rake
│   └── twitter_renderer.rb
├── magent.init.rb
├── old_show.html.haml
├── public/
│   ├── close_popup.html
│   ├── codemirror/
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── compress.html
│   │   ├── css/
│   │   │   └── docs.css
│   │   ├── demo/
│   │   │   ├── activeline.html
│   │   │   ├── changemode.html
│   │   │   ├── complete.html
│   │   │   ├── complete.js
│   │   │   ├── fullscreen.html
│   │   │   ├── marker.html
│   │   │   ├── mustache.html
│   │   │   ├── preview.html
│   │   │   ├── resize.html
│   │   │   ├── runmode.html
│   │   │   ├── search.html
│   │   │   └── theme.html
│   │   ├── index.html
│   │   ├── internals.html
│   │   ├── lib/
│   │   │   ├── overlay.js
│   │   │   └── runmode.js
│   │   ├── manual.html
│   │   ├── oldrelease.html
│   │   ├── test/
│   │   │   ├── index.html
│   │   │   └── test.js
│   │   └── theme/
│   │       ├── cobalt.css
│   │       ├── eclipse.css
│   │       ├── elegant.css
│   │       ├── neat.css
│   │       └── night.css
│   ├── errors/
│   │   ├── javascripts/
│   │   │   └── bug_hunter.js
│   │   └── stylesheets/
│   │       └── highlight.css
│   ├── robots.txt
│   └── stylesheets/
│       ├── compoments/
│       │   └── dialog.css
│       ├── ie7.css
│       └── jquery.ui.tabs.css
├── script/
│   ├── cleanup
│   ├── daily_report
│   ├── export
│   ├── find_experts
│   ├── handle_email
│   ├── import
│   ├── import_email
│   ├── import_twitter
│   ├── rails
│   ├── update_geoip
│   └── websocket
├── spec/
│   ├── controllers/
│   │   ├── activities_controller_spec.rb
│   │   ├── answers_controller_spec.rb
│   │   ├── close_requests_controller_spec.rb
│   │   ├── comments_controller_spec.rb
│   │   ├── groups_controller_spec.rb
│   │   ├── mobile_controller_spec.rb
│   │   ├── questions_controller_spec.rb
│   │   ├── searches_controller_spec.rb
│   │   ├── themes_controller_spec.rb
│   │   ├── users_controller_spec.rb
│   │   └── votes_controller_spec.rb
│   ├── fabricators/
│   │   ├── answer_fabricator.rb
│   │   ├── close_request_fabricator.rb
│   │   ├── comment_fabricator.rb
│   │   ├── group_fabricator.rb
│   │   ├── notification_config_fabricator.rb
│   │   ├── question_fabricator.rb
│   │   ├── search_fabricator.rb
│   │   ├── theme_fabricator.rb
│   │   ├── user_fabricator.rb
│   │   └── user_stat_fabricator.rb
│   ├── helpers/
│   │   ├── mobile_helper_spec.rb
│   │   └── themes_helper_spec.rb
│   ├── lib/
│   │   └── jobs/
│   │       ├── activities_spec.rb
│   │       ├── answers_spec.rb
│   │       ├── mailer_spec.rb
│   │       ├── questions_spec.rb
│   │       ├── tags_spec.rb
│   │       ├── users_spec.rb
│   │       └── votes_spec.rb
│   ├── models/
│   │   ├── answer_spec.rb
│   │   ├── group_spec.rb
│   │   ├── question_spec.rb
│   │   ├── theme_spec.rb
│   │   └── user_spec.rb
│   ├── requests/
│   │   └── questions_spec.rb
│   ├── routing/
│   │   └── themes_routing_spec.rb
│   ├── spec_helper.rb
│   └── support/
│       └── omniauth.rb
├── vendor/
│   ├── assets/
│   │   ├── javascripts/
│   │   │   ├── codemirror/
│   │   │   │   ├── codemirror.js
│   │   │   │   └── mode/
│   │   │   │       ├── clike/
│   │   │   │       │   ├── clike.js
│   │   │   │       │   └── index.html
│   │   │   │       ├── clojure/
│   │   │   │       │   ├── clojure.js
│   │   │   │       │   └── index.html
│   │   │   │       ├── coffeescript/
│   │   │   │       │   ├── LICENSE
│   │   │   │       │   ├── coffeescript.js
│   │   │   │       │   └── index.html
│   │   │   │       ├── css/
│   │   │   │       │   ├── css.js
│   │   │   │       │   └── index.html
│   │   │   │       ├── diff/
│   │   │   │       │   ├── diff.css
│   │   │   │       │   ├── diff.js
│   │   │   │       │   └── index.html
│   │   │   │       ├── groovy/
│   │   │   │       │   ├── groovy.js
│   │   │   │       │   └── index.html
│   │   │   │       ├── haskell/
│   │   │   │       │   ├── haskell.js
│   │   │   │       │   └── index.html
│   │   │   │       ├── htmlmixed/
│   │   │   │       │   ├── htmlmixed.js
│   │   │   │       │   └── index.html
│   │   │   │       ├── javascript/
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── javascript.js
│   │   │   │       ├── jinja2/
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── jinja2.js
│   │   │   │       ├── lua/
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── lua.js
│   │   │   │       ├── markdown/
│   │   │   │       │   ├── index.html
│   │   │   │       │   ├── markdown.css
│   │   │   │       │   └── markdown.js
│   │   │   │       ├── ntriples/
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── ntriples.js
│   │   │   │       ├── pascal/
│   │   │   │       │   ├── LICENSE
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── pascal.js
│   │   │   │       ├── perl/
│   │   │   │       │   ├── LICENSE
│   │   │   │       │   └── index.html
│   │   │   │       ├── php/
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── php.js
│   │   │   │       ├── plsql/
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── plsql.js
│   │   │   │       ├── python/
│   │   │   │       │   ├── LICENSE.txt
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── python.js
│   │   │   │       ├── r/
│   │   │   │       │   ├── LICENSE
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── r.js
│   │   │   │       ├── rst/
│   │   │   │       │   ├── index.html
│   │   │   │       │   ├── rst.css
│   │   │   │       │   └── rst.js
│   │   │   │       ├── ruby/
│   │   │   │       │   ├── LICENSE
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── ruby.js
│   │   │   │       ├── rust/
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── rust.js
│   │   │   │       ├── scheme/
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── scheme.js
│   │   │   │       ├── smalltalk/
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── smalltalk.js
│   │   │   │       ├── sparql/
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── sparql.js
│   │   │   │       ├── stex/
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── stex.js
│   │   │   │       ├── tiddlywiki/
│   │   │   │       │   ├── index.html
│   │   │   │       │   ├── tiddlywiki.css
│   │   │   │       │   └── tiddlywiki.js
│   │   │   │       ├── velocity/
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── velocity.js
│   │   │   │       ├── xml/
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── xml.js
│   │   │   │       ├── xmlpure/
│   │   │   │       │   ├── index.html
│   │   │   │       │   └── xmlpure.js
│   │   │   │       └── yaml/
│   │   │   │           ├── index.html
│   │   │   │           └── yaml.js
│   │   │   ├── jpicker.js
│   │   │   ├── mobile/
│   │   │   │   └── jquery_mobile.js
│   │   │   ├── modernizr.js
│   │   │   └── tipsy/
│   │   │       └── jquery.tipsy.js
│   │   └── stylesheets/
│   │       ├── chosen/
│   │       │   └── chosen.css
│   │       ├── codemirror/
│   │       │   ├── codemirror.css.scss
│   │       │   └── default.css.scss
│   │       ├── h5bp/
│   │       │   ├── helpers.css.scss
│   │       │   ├── media.css.scss
│   │       │   ├── print.css.scss
│   │       │   └── reset.css.scss
│   │       ├── jpicker/
│   │       │   └── jPicker-1.1.6.css.scss
│   │       ├── jquery-ui/
│   │       │   └── jquery-ui.css.scss
│   │       ├── mobile/
│   │       │   └── jquery_mobile.css.scss
│   │       ├── prettify.css
│   │       └── tipsy/
│   │           └── tipsy.css
│   └── plugins/
│       ├── exception_notification/
│       │   ├── README
│       │   ├── exception_notification.gemspec
│       │   └── lib/
│       │       ├── exception_notifier/
│       │       │   ├── notifier.rb
│       │       │   └── views/
│       │       │       └── exception_notifier/
│       │       │           ├── _backtrace.text.erb
│       │       │           ├── _environment.text.erb
│       │       │           ├── _request.text.erb
│       │       │           ├── _session.text.erb
│       │       │           ├── _title.text.erb
│       │       │           └── exception_notification.text.erb
│       │       └── exception_notifier.rb
│       └── gravatar/
│           ├── MIT-LICENSE
│           ├── README.rdoc
│           ├── Rakefile
│           ├── about.yml
│           ├── init.rb
│           ├── lib/
│           │   └── gravatar.rb
│           └── spec/
│               └── gravatar_spec.rb
└── xapit.ru
Download .txt
SYMBOL INDEX (1966 symbols across 256 files)

FILE: app/assets/javascripts/app/initializers/init_modernizr.js
  function fix_html5_on_ie (line 61) | function fix_html5_on_ie() {

FILE: app/assets/javascripts/app/modules/activities.js
  function initialize (line 4) | function initialize() {
  function createOnIndex (line 7) | function createOnIndex(data) {

FILE: app/assets/javascripts/app/modules/answers.js
  function initialize (line 4) | function initialize($body) {
  function initializeOnQuestion (line 13) | function initializeOnQuestion() {
  function createOnIndex (line 26) | function createOnIndex(data) {
  function createOnShow (line 29) | function createOnShow(data) {
  function updateOnIndex (line 39) | function updateOnIndex(data) {
  function updateOnShow (line 43) | function updateOnShow(data) {
  function vote (line 48) | function vote(data) {

FILE: app/assets/javascripts/app/modules/app_config.js
  function initialize (line 4) | function initialize() {

FILE: app/assets/javascripts/app/modules/authentication.js
  function initialize (line 4) | function initialize() {
  function positionDropdown (line 19) | function positionDropdown() {
  function dropdownToggle (line 26) | function dropdownToggle() {
  function openPopup (line 37) | function openPopup(authUrl) {
  function startLoginDialog (line 52) | function startLoginDialog(title,join){

FILE: app/assets/javascripts/app/modules/comments.js
  function initializeOnQuestion (line 4) | function initializeOnQuestion(data) {
  function showCommentForm (line 87) | function showCommentForm() {
  function createOnIndex (line 101) | function createOnIndex(data) {
  function createOnShow (line 104) | function createOnShow(data) {
  function updateOnIndex (line 114) | function updateOnIndex(data) {
  function updateOnShow (line 118) | function updateOnShow(data) {
  function vote (line 126) | function vote(data) {

FILE: app/assets/javascripts/app/modules/editor.js
  function initialize (line 4) | function initialize() {
  function setup (line 25) | function setup(editor) {
  function setupWysiwyg (line 33) | function setupWysiwyg(editor) {
  function setupEditor (line 59) | function setupEditor(editor) {

FILE: app/assets/javascripts/app/modules/effects.js
  function initialize (line 4) | function initialize() {
  function fade (line 7) | function fade(object) {

FILE: app/assets/javascripts/app/modules/form.js
  function initialize (line 4) | function initialize() {

FILE: app/assets/javascripts/app/modules/geo.js
  function initialize (line 4) | function initialize() {
  function localize (line 9) | function localize() {

FILE: app/assets/javascripts/app/modules/groups.js
  function initialize (line 4) | function initialize($body) {
  function initializeOnEdit (line 13) | function initializeOnEdit($body) {
  function initializeOnManageProperties (line 22) | function initializeOnManageProperties($body) {
  function initializeOnIndex (line 27) | function initializeOnIndex($body) {
  function join (line 41) | function join(link){

FILE: app/assets/javascripts/app/modules/invitations.js
  function initialize (line 4) | function initialize() {

FILE: app/assets/javascripts/app/modules/jqmath.js
  function initialize (line 4) | function initialize() {

FILE: app/assets/javascripts/app/modules/layout_editor.js
  function initialize (line 4) | function initialize() {
  function start (line 10) | function start() {
  function stop (line 18) | function stop() {
  function dropHandler (line 21) | function dropHandler(ev, ui) {

FILE: app/assets/javascripts/app/modules/loader.js
  function initialize (line 4) | function initialize($body, refreshed) {
  function refresh (line 18) | function refresh($body, refreshed) {

FILE: app/assets/javascripts/app/modules/local_storage.js
  function initialize (line 4) | function initialize() {
  function remove (line 11) | function remove(key, id) {
  function initializeTextAreas (line 29) | function initializeTextAreas() {
  function hasStorage (line 43) | function hasStorage(){
  function loadTextareas (line 53) | function loadTextareas(){
  function add (line 64) | function add(key, id, value){
  function setObject (line 90) | function setObject(key, value) {
  function getObject (line 94) | function getObject(key) {

FILE: app/assets/javascripts/app/modules/members.js
  function initialize (line 4) | function initialize(data) {

FILE: app/assets/javascripts/app/modules/messages.js
  function initialize (line 4) | function initialize() {
  function show (line 12) | function show(message, t, delay) {
  function ajaxErrorHandler (line 22) | function ajaxErrorHandler(XMLHttpRequest, textStatus, errorThrown) {

FILE: app/assets/javascripts/app/modules/networks.js
  function initialize (line 4) | function initialize(form) {

FILE: app/assets/javascripts/app/modules/notifier.js
  function initialize (line 4) | function initialize() {
  function sendMessage (line 15) | function sendMessage(title, message, icon) {
  function isValid (line 24) | function isValid() {
  function isAllowed (line 28) | function isAllowed() {
  function updateCheckbox (line 33) | function updateCheckbox() {

FILE: app/assets/javascripts/app/modules/pages.js
  function initialize (line 4) | function initialize($body) {

FILE: app/assets/javascripts/app/modules/questions.js
  function initialize (line 4) | function initialize($body) {
  function initializeOnIndex (line 16) | function initializeOnIndex($body) {
  function initializeOnShow (line 63) | function initializeOnShow($body) {
  function initializeOnNew (line 89) | function initializeOnNew($body) {
  function initializeOnMove (line 168) | function initializeOnMove(data) {
  function createOnIndex (line 187) | function createOnIndex(data) {
  function createOnShow (line 192) | function createOnShow(data) {
  function updateOnIndex (line 195) | function updateOnIndex(data) {
  function updateOnShow (line 205) | function updateOnShow(data) {
  function isIndexEmpty (line 223) | function isIndexEmpty() {
  function updateWidgets (line 228) | function updateWidgets(data) {

FILE: app/assets/javascripts/app/modules/rewards.js
  function initialize (line 4) | function initialize() {

FILE: app/assets/javascripts/app/modules/searches.js
  function initialize (line 4) | function initialize($body) {

FILE: app/assets/javascripts/app/modules/shapado_ui.js
  function newQuestion (line 4) | function newQuestion(data) {
  function updateQuestion (line 14) | function updateQuestion(data) {
  function deleteQuestion (line 24) | function deleteQuestion(data) {
  function newAnswer (line 28) | function newAnswer(data) {
  function updateAnswer (line 36) | function updateAnswer(data) {
  function newComment (line 44) | function newComment(data) {
  function updateComment (line 50) | function updateComment(data) {
  function vote (line 56) | function vote(data) {
  function newActivity (line 68) | function newActivity(data) {
  function isOnQuestionIndex (line 73) | function isOnQuestionIndex() {
  function isOnQuestionShow (line 78) | function isOnQuestionShow() {

FILE: app/assets/javascripts/app/modules/tags.js
  function initialize (line 4) | function initialize($body) {
  function initializeOnIndex (line 10) | function initializeOnIndex($body) {

FILE: app/assets/javascripts/app/modules/themes.js
  function initialize (line 3) | function initialize($body) {

FILE: app/assets/javascripts/app/modules/ui.js
  function initialize (line 4) | function initialize() {
  function initializeFeedback (line 80) | function initializeFeedback() {
  function sortValues (line 98) | function sortValues(selectID, child, keepers, method, arg) {
  function offline (line 113) | function offline() {
  function notMember (line 117) | function notMember() {
  function centerScroll (line 121) | function centerScroll(tag, container) {
  function navigateShortcuts (line 132) | function navigateShortcuts(container, element_selector) {
  function initializeLangFields (line 167) | function initializeLangFields(container) {
  function initializeSmoothScrollToTop (line 174) | function initializeSmoothScrollToTop() {
  function initializeAjaxTooltips (line 182) | function initializeAjaxTooltips() {
  function initDropdowns (line 218) | function initDropdowns() {
  function initQuickQuestion (line 230) | function initQuickQuestion() {

FILE: app/assets/javascripts/app/modules/updater.js
  function initialize (line 4) | function initialize($body) {
  function setupLoadingIcon (line 67) | function setupLoadingIcon() {
  function guessCurrentLayout (line 91) | function guessCurrentLayout() {

FILE: app/assets/javascripts/app/modules/users.js
  function initialize (line 4) | function initialize($body) {
  function initializeOnEdit (line 12) | function initializeOnEdit($body) {
  function initializeOnIndex (line 20) | function initializeOnIndex($body) {
  function initializeOnShow (line 34) | function initializeOnShow($body) {

FILE: app/assets/javascripts/app/modules/utils.js
  function urlVars (line 3) | function urlVars() {
  function appendParams (line 17) | function appendParams(url, params) {
  function log (line 26) | function log(data) {

FILE: app/assets/javascripts/app/modules/votes.js
  function initialize (line 4) | function initialize() {
  function initializeOnQuestions (line 7) | function initializeOnQuestions() {
  function initializeOnQuestion (line 34) | function initializeOnQuestion() {
  function updateOnIndex (line 71) | function updateOnIndex(data) {
  function updateOnShow (line 74) | function updateOnShow(data) {

FILE: app/assets/javascripts/app/modules/websocket.js
  function initialize (line 3) | function initialize() {
  function addChatMessage (line 31) | function addChatMessage(from, message) {
  function parse (line 35) | function parse(data) {
  function send (line 85) | function send(data) {

FILE: app/assets/javascripts/app/modules/widgets.js
  function initialize (line 4) | function initialize(data) {
  function createOnIndex (line 55) | function createOnIndex(data) {
  function createOnShow (line 58) | function createOnShow(data) {
  function updateOnIndex (line 61) | function updateOnIndex(data) {
  function updateOnShow (line 65) | function updateOnShow(data) {

FILE: app/assets/javascripts/application-init.js
  function initialize_all (line 1) | function initialize_all() {

FILE: app/assets/javascripts/facebook_app/facebox/facebox.js
  function clickHandler (line 147) | function clickHandler() {
  function init (line 167) | function init(settings) {
  function getPageScroll (line 194) | function getPageScroll() {
  function getPageHeight (line 210) | function getPageHeight() {
  function makeCompatible (line 223) | function makeCompatible() {
  function fillFaceboxFromHref (line 237) | function fillFaceboxFromHref(href, klass) {
  function fillFaceboxFromImage (line 254) | function fillFaceboxFromImage(href, klass) {
  function fillFaceboxFromAjax (line 262) | function fillFaceboxFromAjax(href, klass) {
  function skipOverlay (line 266) | function skipOverlay() {
  function showOverlay (line 270) | function showOverlay() {
  function hideOverlay (line 283) | function hideOverlay() {

FILE: app/assets/javascripts/vendor/highlight/prettify.js
  function H (line 1) | function H(){var x=navigator&&navigator.userAgent&&/\bMSIE 6\./.test(nav...
  function x (line 1) | function x(b){b=b.split(/ /g);var a={};for(var c=b.length;--c>=0;){var d...
  function X (line 4) | function X(b){return b>="a"&&b<="z"||b>="A"&&b<="Z"}
  function u (line 4) | function u(b,a,c,d){b.unshift(c,d||0);try{a.splice.apply(a,b)}finally{b....
  function $ (line 5) | function $(b){return b.replace(P,"&amp;").replace(Q,"&lt;").replace(R,"&...
  function E (line 5) | function E(b){return b.replace(P,"&amp;").replace(Q,"&lt;").replace(R,"&...
  function ga (line 6) | function ga(b){var a=b.indexOf("&");if(a<0)return b;for(--a;(a=b.indexOf...
  function S (line 6) | function S(b){return"XMP"===b.tagName}
  function z (line 7) | function z(b,a){switch(b.nodeType){case 1:var c=b.tagName.toLowerCase();...
  function ha (line 7) | function ha(b){if(null===F){var a=document.createElement("PRE");
  function ia (line 8) | function ia(b){var a=0;return function(c){var d=null,g=0;for(var e=0,h=c...
  function na (line 9) | function na(b){var a=b.match(ja),c=[],d=0,g=[];if(a)for(var e=0,h=a.leng...
  function v (line 10) | function v(b,a){var c={};(function(){var g=b.concat(a);for(var e=g.lengt...
  function pa (line 11) | function pa(b){var a=oa(b);for(var c=0;c<a.length;c+=2)if(a[c+1]==="src"...
  function ra (line 12) | function ra(b,a){for(var c=0;c<a.length;c+=2){var d=a[c+1];if(d==="tag")...
  function r (line 13) | function r(b){var a=[],c=[];if(b.tripleQuotedStrings)a.push(["str",/^(?:...
  function sa (line 16) | function sa(b,a){for(var c=0;c<a.length;c+=2){var d=a[c+1];if(d==="src")...
  function ta (line 16) | function ta(b,a){var c=false;for(var d=0;d<a.length;d+=2){var g=a[d+1],e...
  function ua (line 17) | function ua(b){var a=pa(b);a=ra(b,a);a=sa(b,a);a=ta(b,a);return a}
  function va (line 17) | function va(b,
  function q (line 19) | function q(b,a){for(var c=a.length;--c>=0;){var d=a[c];if(!C.hasOwnPrope...
  function T (line 20) | function T(b,a){try{var c=na(b),d=c.source,g=c.tags;if(!C.hasOwnProperty...
  function wa (line 21) | function wa(b){var a=H(),c=[document.getElementsByTagName("pre"),documen...

FILE: app/assets/javascripts/vendor/jHtmlArea.js
  function addButtons (line 322) | function addButtons(arr) {

FILE: app/assets/javascripts/vendor/jquery-1.6.4.js
  function cu (line 2) | function cu(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.pa...
  function cr (line 2) | function cr(a){if(!cg[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.cs...
  function cq (line 2) | function cq(a,b){var c={};f.each(cm.concat.apply([],cm.slice(0,b)),funct...
  function cp (line 2) | function cp(){cn=b}
  function co (line 2) | function co(){setTimeout(cp,0);return cn=f.now()}
  function cf (line 2) | function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(...
  function ce (line 2) | function ce(){try{return new a.XMLHttpRequest}catch(b){}}
  function b$ (line 2) | function b$(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.da...
  function bZ (line 2) | function bZ(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i...
  function bY (line 2) | function bY(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bA.test(a...
  function bX (line 2) | function bX(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d...
  function bW (line 2) | function bW(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],...
  function bV (line 2) | function bV(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f...
  function by (line 2) | function by(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b===...
  function bl (line 2) | function bl(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f....
  function bk (line 2) | function bk(a){f.nodeName(a,"input")?bj(a):"getElementsByTagName"in a&&f...
  function bj (line 2) | function bj(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked...
  function bi (line 2) | function bi(a){return"getElementsByTagName"in a?a.getElementsByTagName("...
  function bh (line 2) | function bh(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttr...
  function bg (line 2) | function bg(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f....
  function bf (line 2) | function bf(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tb...
  function V (line 2) | function V(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d...
  function U (line 2) | function U(a){return!a||!a.parentNode||a.parentNode.nodeType===11}
  function M (line 2) | function M(a,b){return(a&&a!=="*"?a+".":"")+b.replace(y,"`").replace(z,"...
  function L (line 2) | function L(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"ev...
  function J (line 2) | function J(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e....
  function D (line 2) | function D(){return!0}
  function C (line 2) | function C(){return!1}
  function m (line 2) | function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,...
  function l (line 2) | function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}
  function k (line 2) | function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"-...
  function K (line 2) | function K(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch...
  function a (line 2) | function a(b,c){return new a.fn.init(b,c)}
  function i (line 2) | function i(a){return function(c){b[a]=arguments.length>1?h.call(argument...
  function m (line 2) | function m(){--h||d.resolveWith(e,[e])}
  function e (line 3) | function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.t...
  function u (line 3) | function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i)...
  function t (line 3) | function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i)...
  function w (line 4) | function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.ready...
  function g (line 4) | function g(a){return d.step(a)}

FILE: app/assets/javascripts/vendor/jquery.autovideo.js
  function showPlayer (line 52) | function showPlayer(thumb){

FILE: app/assets/javascripts/vendor/jquery.droppy.js
  function getSubnav (line 18) | function getSubnav(ele) {
  function getActuator (line 27) | function getActuator(ele) {
  function hide (line 35) | function hide() {
  function show (line 46) | function show() {

FILE: app/assets/javascripts/vendor/jquery.textarea.js
  function TextArea (line 85) | function TextArea(el, options) {
  function Toolbar (line 420) | function Toolbar(textarea, options) {

FILE: app/assets/javascripts/vendor/mathscribe/jqmath-0.1.1.js
  function M (line 27) | function M(s, blockQ, docP) { return M.s2mathE(s, blockQ, docP); }
  function newMENS (line 36) | function newMENS(tag, args$P /* for jQuery append() if != null */, docP)
  function checkVertStretch (line 66) | function checkVertStretch(up, dn, g) /* non-MathML */ {
  function vertAlignE$ (line 79) | function vertAlignE$(up, dn, fmVert) /* non-MathML */ {
  function setPrecs (line 280) | function setPrecs(precs, precCharsA) {
  function scan_word (line 359) | function scan_word(descP) {
  function braceParseMxTok (line 367) | function braceParseMxTok() {
  function scan_meTok (line 374) | function scan_meTok(afterP) {
  function addClass (line 382) | function addClass(e, w) {
  function clScan (line 393) | function clScan() {	// note currently ignored by MathPlayer
  function mvScan (line 399) | function mvScan(wP) {
  function frScan (line 424) | function frScan() {
  function scScan (line 435) | function scScan() {
  function scan_tokP (line 460) | function scan_tokP() {
  function parse_table_tokP (line 500) | function parse_table_tokP() {
  function checkSubSup (line 524) | function checkSubSup(me, tokP) /* returns [me, tokP] */ {
  function parse_mxP_tokP (line 552) | function parse_mxP_tokP(prec, tokP) /* tokP may be non-atomic */ {

FILE: app/assets/javascripts/vendor/mathscribe/jscurry-0.1.js
  function F (line 49) | function F(x /* , ... */) {	// F() shorthand notation for some basic ope...

FILE: app/assets/javascripts/vendor/polyfills/json2.js
  function f (line 169) | function f(n) {
  function quote (line 202) | function quote(string) {
  function str (line 216) | function str(key, holder) {
  function walk (line 367) | function walk(holder, key) {

FILE: app/assets/javascripts/vendor/showdown.js
  function char2hex (line 1174) | function char2hex(ch) {

FILE: app/assets/javascripts/vendor/web-socket-js/FABridge.js
  function FABridge (line 23) | function FABridge(target,bridgeName)
  function instanceFactory (line 70) | function instanceFactory(objID)
  function FABridge__invokeJSFunction (line 76) | function FABridge__invokeJSFunction(args)
  function FABridge__bridgeInitialized (line 105) | function FABridge__bridgeInitialized(bridgeName) {

FILE: app/assets/javascripts/vendor/web-socket-js/swfobject.js
  function f (line 4) | function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].ap...
  function K (line 4) | function K(X){if(J){X()}else{U[U.length]=X}}
  function s (line 4) | function s(Y){if(typeof O.addEventListener!=D){O.addEventListener("load"...
  function h (line 4) | function h(){if(T){V()}else{H()}}
  function V (line 4) | function V(){var X=j.getElementsByTagName("body")[0];var aa=C(r);aa.setA...
  function H (line 4) | function H(){var ag=o.length;if(ag>0){for(var af=0;af<ag;af++){var Y=o[a...
  function z (line 4) | function z(aa){var X=null;var Y=c(aa);if(Y&&Y.nodeName=="OBJECT"){if(typ...
  function A (line 4) | function A(){return !a&&F("6.0.65")&&(M.win||M.mac)&&!(M.wk&&M.wk<312)}
  function P (line 4) | function P(aa,ab,X,Z){a=true;E=Z||null;B={success:false,id:X};var ae=c(X...
  function p (line 4) | function p(Y){if(M.ie&&M.win&&Y.readyState!=4){var X=C("div");Y.parentNo...
  function g (line 4) | function g(ab){var aa=C("div");if(M.win&&M.ie){aa.innerHTML=ab.innerHTML...
  function u (line 4) | function u(ai,ag,Y){var X,aa=c(Y);if(M.wk&&M.wk<312){return X}if(aa){if(...
  function e (line 4) | function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttr...
  function y (line 4) | function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.s...
  function b (line 4) | function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function...
  function c (line 4) | function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}
  function C (line 4) | function C(X){return j.createElement(X)}
  function i (line 4) | function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}
  function F (line 4) | function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=pars...
  function v (line 4) | function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagN...
  function w (line 4) | function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z...
  function L (line 4) | function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof...

FILE: app/assets/javascripts/vendor/web-socket-js/web_socket.js
  function WebSocketEvent (line 248) | function WebSocketEvent(){}

FILE: app/controllers/activities_controller.rb
  class ActivitiesController (line 1) | class ActivitiesController < ApplicationController
    method index (line 10) | def index
    method show (line 37) | def show

FILE: app/controllers/admin/manage_controller.rb
  class Admin::ManageController (line 1) | class Admin::ManageController < ApplicationController
    method dashboard (line 29) | def dashboard
    method edit_card (line 32) | def edit_card
    method properties (line 42) | def properties
    method appearance (line 46) | def appearance
    method actions (line 49) | def actions
    method stats (line 52) | def stats
    method domain (line 55) | def domain
    method content (line 58) | def content
    method social (line 67) | def social
    method invitations (line 71) | def invitations
    method access (line 76) | def access
    method close_group (line 79) | def close_group
    method check_permissions (line 83) | def check_permissions

FILE: app/controllers/admin/moderate_controller.rb
  class Admin::ModerateController (line 1) | class Admin::ModerateController < ApplicationController
    method index (line 5) | def index
    method ban (line 30) | def ban
    method unban (line 39) | def unban

FILE: app/controllers/announcements_controller.rb
  class AnnouncementsController (line 1) | class AnnouncementsController < ApplicationController
    method index (line 10) | def index
    method create (line 23) | def create
    method destroy (line 47) | def destroy
    method hide (line 57) | def hide
    method check_permissions (line 67) | def check_permissions

FILE: app/controllers/answers_controller.rb
  class AnswersController (line 1) | class AnswersController < ApplicationController
    method index (line 9) | def index
    method history (line 24) | def history
    method diff (line 34) | def diff
    method revert (line 53) | def revert
    method show (line 62) | def show
    method create (line 72) | def create
    method edit (line 161) | def edit
    method update (line 170) | def update
    method destroy (line 202) | def destroy
    method favorite (line 219) | def favorite
    method unfavorite (line 238) | def unfavorite
    method check_permissions (line 255) | def check_permissions
    method check_update_permissions (line 285) | def check_update_permissions
    method create_draft! (line 315) | def create_draft!

FILE: app/controllers/application_controller.rb
  class ApplicationController (line 4) | class ApplicationController < ActionController::Base
    method recaptcha_valid? (line 15) | def recaptcha_valid?
    method check_social (line 41) | def check_social
    method check_cookies (line 48) | def check_cookies
    method find_group (line 55) | def find_group
    method find_questions (line 77) | def find_questions(extra_conditions = {}, extra_scope = { })
    method find_activities (line 129) | def find_activities(conds = {})
    method current_group (line 140) | def current_group
    method current_version (line 145) | def current_version
    method scoped_conditions (line 152) | def scoped_conditions(conditions = {})
    method set_layout (line 162) | def set_layout
    method check_sidebar (line 180) | def check_sidebar
    method widgets_context (line 191) | def widgets_context(controller, action)
    method layout_for_theme (line 195) | def layout_for_theme
    method set_custom_headers (line 203) | def set_custom_headers
    method render_404 (line 209) | def render_404
    method after_sign_out_path_for (line 219) | def after_sign_out_path_for(resource)
    method after_sign_in_path_for (line 223) | def after_sign_in_path_for(resource_or_scope)
    method share_variables (line 228) | def share_variables
    method process_payment_and_redirect (line 234) | def process_payment_and_redirect(success, invoice)
    method close (line 257) | def close

FILE: app/controllers/badges_controller.rb
  class BadgesController (line 1) | class BadgesController < ApplicationController
    method index (line 8) | def index
    method show (line 35) | def show

FILE: app/controllers/close_requests_controller.rb
  class CloseRequestsController (line 1) | class CloseRequestsController < ApplicationController
    method index (line 7) | def index
    method new (line 11) | def new
    method create (line 23) | def create
    method edit (line 59) | def edit
    method update (line 72) | def update
    method destroy (line 104) | def destroy
    method find_question (line 122) | def find_question
    method check_permissions (line 126) | def check_permissions

FILE: app/controllers/comments_controller.rb
  class CommentsController (line 1) | class CommentsController < ApplicationController
    method index (line 6) | def index
    method create (line 14) | def create
    method edit (line 69) | def edit
    method update (line 76) | def update
    method destroy (line 111) | def destroy
    method check_permissions (line 128) | def check_permissions
    method current_scope (line 149) | def current_scope
    method find_scope (line 153) | def find_scope
    method scope (line 158) | def scope
    method full_scope (line 166) | def full_scope

FILE: app/controllers/constrains_configs_controller.rb
  class ConstrainsConfigsController (line 1) | class ConstrainsConfigsController < ApplicationController
    method index (line 6) | def index
    method new (line 16) | def new
    method edit (line 21) | def edit
    method create (line 26) | def create
    method update (line 40) | def update
    method destroy (line 50) | def destroy
    method check_permissions (line 56) | def check_permissions

FILE: app/controllers/doc_controller.rb
  class DocController (line 1) | class DocController < ApplicationController
    method privacy (line 4) | def privacy
    method tos (line 7) | def tos
    method plans (line 11) | def plans
    method chat (line 21) | def chat
    method check_ssl (line 27) | def check_ssl

FILE: app/controllers/facebook_controller.rb
  class FacebookController (line 1) | class FacebookController < ApplicationController
    method index (line 11) | def index
    method enable_page (line 15) | def enable_page
    method find_group (line 28) | def find_group
    method find_group_on_facebook (line 32) | def find_group_on_facebook(sr)
    method parse_signed_request (line 69) | def parse_signed_request(str)

FILE: app/controllers/flags_controller.rb
  class FlagsController (line 1) | class FlagsController < ApplicationController
    method index (line 6) | def index
    method create (line 10) | def create
    method update (line 48) | def update
    method new (line 67) | def new
    method edit (line 82) | def edit
    method destroy (line 97) | def destroy
    method find_resource (line 110) | def find_resource
    method resource_url (line 118) | def resource_url

FILE: app/controllers/groups_controller.rb
  class GroupsController (line 1) | class GroupsController < ApplicationController
    method index (line 14) | def index
    method show (line 43) | def show
    method new (line 61) | def new
    method edit (line 71) | def edit
    method create (line 76) | def create
    method update (line 107) | def update
    method set_columns (line 163) | def set_columns
    method destroy (line 176) | def destroy
    method accept (line 186) | def accept
    method close (line 194) | def close
    method autocomplete_for_group_slug (line 206) | def autocomplete_for_group_slug
    method allow_custom_ads (line 218) | def allow_custom_ads
    method disallow_custom_ads (line 227) | def disallow_custom_ads
    method group_twitter_request_token (line 236) | def group_twitter_request_token
    method connect_group_to_twitter (line 252) | def connect_group_to_twitter
    method disconnect_twitter_group (line 276) | def disconnect_twitter_group
    method add_to_facebook (line 281) | def add_to_facebook
    method downgrade (line 292) | def downgrade
    method upgrade (line 310) | def upgrade
    method update_card (line 349) | def update_card
    method join (line 371) | def join
    method check_custom_domain (line 380) | def check_custom_domain
    method reset_custom_domain (line 387) | def reset_custom_domain
    method check_permissions (line 398) | def check_permissions

FILE: app/controllers/imports_controller.rb
  class ImportsController (line 1) | class ImportsController < ApplicationController
    method index (line 9) | def index
    method send_confirmation (line 18) | def send_confirmation

FILE: app/controllers/invitations_controller.rb
  class InvitationsController (line 1) | class InvitationsController < ApplicationController
    method index (line 4) | def index
    method upcoming (line 7) | def upcoming
    method create (line 11) | def create
    method accept (line 35) | def accept
    method resend (line 51) | def resend
    method revoke (line 58) | def revoke

FILE: app/controllers/invoices_controller.rb
  class InvoicesController (line 1) | class InvoicesController < ApplicationController
    method index (line 11) | def index
    method show (line 32) | def show
    method upcoming (line 41) | def upcoming
    method create (line 47) | def create
    method success (line 105) | def success
    method webhook (line 109) | def webhook
    method check_new_invoice (line 141) | def check_new_invoice

FILE: app/controllers/members_controller.rb
  class MembersController (line 2) | class MembersController < ApplicationController
    method index (line 8) | def index
    method update (line 26) | def update
    method destroy (line 37) | def destroy
    method check_permissions (line 48) | def check_permissions

FILE: app/controllers/mobile_controller.rb
  class MobileController (line 1) | class MobileController < ApplicationController
    method index (line 4) | def index

FILE: app/controllers/moderate/answers_controller.rb
  class Moderate::AnswersController (line 1) | class Moderate::AnswersController < ApplicationController
    method index (line 9) | def index
    method manage (line 25) | def manage
    method banning (line 40) | def banning
    method ban (line 52) | def ban

FILE: app/controllers/moderate/questions_controller.rb
  class Moderate::QuestionsController (line 1) | class Moderate::QuestionsController < ApplicationController
    method index (line 10) | def index
    method flagged (line 18) | def flagged
    method to_close (line 32) | def to_close
    method to_open (line 41) | def to_open
    method manage (line 50) | def manage
    method banning (line 67) | def banning
    method ban (line 80) | def ban
    method closing (line 99) | def closing
    method close (line 112) | def close
    method opening (line 141) | def opening
    method open (line 154) | def open
    method current_scope (line 175) | def current_scope

FILE: app/controllers/moderate/users_controller.rb
  class Moderate::UsersController (line 1) | class Moderate::UsersController < ApplicationController
    method index (line 5) | def index

FILE: app/controllers/open_requests_controller.rb
  class OpenRequestsController (line 1) | class OpenRequestsController < ApplicationController
    method index (line 7) | def index
    method create (line 11) | def create
    method update (line 34) | def update
    method destroy (line 54) | def destroy
    method new (line 71) | def new
    method edit (line 78) | def edit
    method find_question (line 92) | def find_question
    method check_permissions (line 96) | def check_permissions

FILE: app/controllers/pages_controller.rb
  class PagesController (line 1) | class PagesController < ApplicationController
    method index (line 11) | def index
    method show (line 30) | def show
    method new (line 59) | def new
    method edit (line 69) | def edit
    method create (line 74) | def create
    method update (line 101) | def update
    method destroy (line 122) | def destroy
    method css (line 133) | def css
    method js (line 143) | def js
    method check_page_permissions (line 154) | def check_page_permissions

FILE: app/controllers/public_errors_controller.rb
  class PublicErrorsController (line 1) | class PublicErrorsController < ApplicationController
    method forbidden (line 4) | def forbidden
    method not_found (line 8) | def not_found
    method method_not_allowed (line 12) | def method_not_allowed
    method conflict (line 17) | def conflict
    method unprocessable_entity (line 22) | def unprocessable_entity
    method internal_server_error (line 26) | def internal_server_error
    method not_implemented (line 30) | def not_implemented
    method routing (line 34) | def routing

FILE: app/controllers/questions_controller.rb
  class QuestionsController (line 1) | class QuestionsController < ApplicationController
    method index (line 36) | def index
    method history (line 73) | def history
    method diff (line 82) | def diff
    method revert (line 100) | def revert
    method related_questions (line 108) | def related_questions
    method tags_for_autocomplete (line 145) | def tags_for_autocomplete
    method show (line 169) | def show
    method new (line 220) | def new
    method edit (line 239) | def edit
    method create (line 244) | def create
    method update (line 349) | def update
    method destroy (line 395) | def destroy
    method solve (line 417) | def solve
    method unsolve (line 450) | def unsolve
    method follow (line 488) | def follow
    method unfollow (line 506) | def unfollow
    method move (line 525) | def move
    method move_to (line 530) | def move_to
    method retag_to (line 555) | def retag_to
    method retag (line 605) | def retag
    method twitter_share (line 616) | def twitter_share
    method random (line 629) | def random
    method remove_attachment (line 644) | def remove_attachment
    method check_permissions (line 654) | def check_permissions
    method check_update_permissions (line 667) | def check_update_permissions
    method check_retag_permissions (line 696) | def check_retag_permissions
    method check_create_permissions (line 718) | def check_create_permissions
    method set_active_tag (line 736) | def set_active_tag
    method check_age (line 741) | def check_age
    method create_draft! (line 764) | def create_draft!

FILE: app/controllers/reward_controller.rb
  class RewardController (line 1) | class RewardController < ApplicationController
    method start (line 5) | def start
    method close (line 47) | def close
    method find_question (line 72) | def find_question

FILE: app/controllers/searches_controller.rb
  class SearchesController (line 1) | class SearchesController < ApplicationController
    method index (line 9) | def index
    method show (line 63) | def show
    method create (line 72) | def create
    method destroy (line 90) | def destroy

FILE: app/controllers/tags_controller.rb
  class TagsController (line 1) | class TagsController < ApplicationController
    method index (line 6) | def index
    method show (line 21) | def show
    method new (line 43) | def new
    method edit (line 47) | def edit
    method create (line 51) | def create
    method update (line 65) | def update
    method destroy (line 87) | def destroy
    method current_scope (line 96) | def current_scope

FILE: app/controllers/themes_controller.rb
  class ThemesController (line 1) | class ThemesController < ApplicationController
    method index (line 8) | def index
    method show (line 28) | def show
    method new (line 39) | def new
    method edit (line 49) | def edit
    method create (line 62) | def create
    method update (line 91) | def update
    method destroy (line 119) | def destroy
    method remove_bg_image (line 128) | def remove_bg_image
    method apply (line 140) | def apply
    method ready (line 146) | def ready
    method download (line 161) | def download
    method import (line 206) | def import
    method check_permissions (line 246) | def check_permissions

FILE: app/controllers/users_controller.rb
  class UsersController (line 1) | class UsersController < ApplicationController
    method index (line 39) | def index
    method new (line 68) | def new
    method create (line 74) | def create
    method show (line 102) | def show
    method answers (line 133) | def answers
    method follows (line 144) | def follows
    method activity (line 170) | def activity
    method edit (line 191) | def edit
    method update (line 196) | def update
    method connect (line 245) | def connect
    method follow_tags (line 264) | def follow_tags
    method unfollow_tags (line 280) | def unfollow_tags
    method follow (line 296) | def follow
    method unfollow (line 323) | def unfollow
    method autocomplete_for_user_login (line 339) | def autocomplete_for_user_login
    method destroy (line 351) | def destroy
    method suggestions (line 360) | def suggestions
    method leave (line 363) | def leave
    method join (line 368) | def join
    method auth (line 373) | def auth
    method social_connect (line 381) | def social_connect
    method new_password (line 384) | def new_password
    method check_signup_type (line 390) | def check_signup_type
    method active_subtab (line 397) | def active_subtab(param)
    method find_user (line 413) | def find_user

FILE: app/controllers/votes_controller.rb
  class VotesController (line 1) | class VotesController < ApplicationController
    method index (line 6) | def index
    method create (line 11) | def create
    method find_voteable (line 100) | def find_voteable
    method validate_vote (line 112) | def validate_vote(value, voter)
    method generate_notice (line 172) | def generate_notice(state)
    method check_permissions (line 183) | def check_permissions

FILE: app/controllers/welcome_controller.rb
  class WelcomeController (line 1) | class WelcomeController < ApplicationController
    method index (line 5) | def index
    method feedback (line 29) | def feedback
    method send_feedback (line 32) | def send_feedback
    method change_language_filter (line 66) | def change_language_filter
    method confirm_age (line 78) | def confirm_age

FILE: app/controllers/widgets_controller.rb
  class WidgetsController (line 1) | class WidgetsController < ApplicationController
    method index (line 13) | def index
    method edit (line 20) | def edit
    method create (line 39) | def create
    method update (line 62) | def update
    method destroy (line 87) | def destroy
    method move (line 104) | def move
    method embedded (line 115) | def embedded
    method check_permissions (line 121) | def check_permissions

FILE: app/helpers/activities_helper.rb
  type ActivitiesHelper (line 1) | module ActivitiesHelper

FILE: app/helpers/announcements_helper.rb
  type AnnouncementsHelper (line 1) | module AnnouncementsHelper

FILE: app/helpers/answers_helper.rb
  type AnswersHelper (line 1) | module AnswersHelper

FILE: app/helpers/application_helper.rb
  type ApplicationHelper (line 2) | module ApplicationHelper
    function default_adsense (line 5) | def default_adsense(position)
    function known_languages (line 23) | def known_languages(user, group)
    function multiauth_dropdown (line 29) | def multiauth_dropdown(title)
    function with_facebook? (line 33) | def with_facebook?
    function language_json (line 43) | def language_json
    function preferred_languages_code (line 50) | def preferred_languages_code(entity, language_method)
    function language_desc (line 64) | def language_desc(langs)
    function language_select (line 70) | def language_select(f, question, opts = {})
    function language_select_tag (line 78) | def language_select_tag(name = "language", value = nil, opts = {})
    function languages_options (line 83) | def languages_options(languages=nil, current_languages = [])
    function locales_options (line 88) | def locales_options(languages=nil)
    function locales_roles (line 96) | def locales_roles
    function tag_cloud (line 104) | def tag_cloud(tags = [], options = {}, limit = 15, style = "tag_cloud")
    function country_flag (line 134) | def country_flag(code, name)
    function markdown (line 140) | def markdown(txt, options = {})
    function render_page_links (line 168) | def render_page_links(text, options = {})
    function format_number (line 211) | def format_number(number)
    function class_for_number (line 223) | def class_for_number(number)
    function shapado_auto_link (line 235) | def shapado_auto_link(text, options = {})
    function format_article_date (line 244) | def format_article_date(date, short)
    function article_date (line 259) | def article_date(article, short = true)
    function edited_date (line 264) | def edited_date(article, short = true)
    function require_js (line 273) | def require_js(*files)
    function require_css (line 277) | def require_css(*files)
    function render_tag (line 281) | def render_tag(tag)
    function class_for_question (line 285) | def class_for_question(question)
    function googlean_script (line 307) | def googlean_script(analytics_id, domain)
    function logged_out_language_filter (line 311) | def logged_out_language_filter
    function clean_seo_keywords (line 322) | def clean_seo_keywords(tags, text = "")
    function current_announcements (line 337) | def current_announcements(hide_time = nil)
    function top_bar_links (line 352) | def top_bar_links
    function gravatar (line 361) | def gravatar(*args)
    function include_latex (line 365) | def include_latex
    function find_answer (line 388) | def find_answer(question)
    function widget_css (line 396) | def widget_css(widget)
    function widget_code (line 400) | def widget_code(widget)
    function facebook_avatar (line 406) | def facebook_avatar(user)
    function twitter_avatar (line 410) | def twitter_avatar(user)
    function identica_avatar (line 418) | def identica_avatar(user)
    function linked_in_avatar (line 423) | def linked_in_avatar(user)
    function suggestion_avatar (line 427) | def suggestion_avatar(suggestion)
    function tag_icon_image_link (line 445) | def tag_icon_image_link(tag)
    function common_follower (line 449) | def common_follower(user, suggestion)
    function suggestion_link (line 461) | def suggestion_link(suggestion)
    function follow_suggestion_link (line 469) | def follow_suggestion_link(suggestion)
    function follow_user_link (line 477) | def follow_user_link(user)
    function follow_tag_link (line 497) | def follow_tag_link(tag)
    function tag_link (line 519) | def tag_link(tag)
    function cache_for (line 528) | def cache_for(name, *args, &block)
    function cache_key_for (line 532) | def cache_key_for(name, *args)
    function payment_form (line 543) | def payment_form(title, options = {})

FILE: app/helpers/badges_helper.rb
  type BadgesHelper (line 1) | module BadgesHelper

FILE: app/helpers/flags_helper.rb
  type FlagsHelper (line 1) | module FlagsHelper

FILE: app/helpers/groups_helper.rb
  type GroupsHelper (line 1) | module GroupsHelper
    function group_logo_img (line 2) | def group_logo_img(group, options)

FILE: app/helpers/layout_helper.rb
  type LayoutHelper (line 1) | module LayoutHelper
    function tab_entry (line 2) | def tab_entry(element, text, path, options = {}, html_opts = {})
    function pjax_tab_entry (line 23) | def pjax_tab_entry(element, text, layout, path, options = {}, html_opt...
    function pjax_link_to (line 36) | def pjax_link_to(text, layout, path, options = {})
    function render_app_config (line 45) | def render_app_config
    function questions_link_for (line 49) | def questions_link_for(action)
    function ie_tag (line 66) | def ie_tag(name=:body, attrs={}, &block)
    function ie_html (line 78) | def ie_html(attrs={}, &block)
    function ie_body (line 82) | def ie_body(attrs={}, &block)
    function add_class (line 88) | def add_class(name, attrs)

FILE: app/helpers/mobile_helper.rb
  type MobileHelper (line 1) | module MobileHelper

FILE: app/helpers/pages_helper.rb
  type PagesHelper (line 1) | module PagesHelper
    function safe_page? (line 2) | def safe_page?(page)

FILE: app/helpers/questions_helper.rb
  type QuestionsHelper (line 1) | module QuestionsHelper
    function microblogging_message (line 2) | def microblogging_message(question=nil)
    function linkedin_url (line 15) | def linkedin_url(question)
    function share_url (line 19) | def share_url(question, service)
    function escape_url (line 72) | def escape_url(url)

FILE: app/helpers/searches_helper.rb
  type SearchesHelper (line 1) | module SearchesHelper
    function excerpt_with_regexp (line 2) | def excerpt_with_regexp(text, regexp, *args)

FILE: app/helpers/sessions_helper.rb
  type SessionsHelper (line 1) | module SessionsHelper

FILE: app/helpers/themes_helper.rb
  type ThemesHelper (line 1) | module ThemesHelper

FILE: app/helpers/users_helper.rb
  type UsersHelper (line 1) | module UsersHelper
    function if_authorized? (line 14) | def if_authorized?(action, resource, &block)
    function link_to_user (line 46) | def link_to_user(user, options={})
    function link_to_login_with_IP (line 67) | def link_to_login_with_IP content_text=nil, options={}
    function link_to_current_user (line 82) | def link_to_current_user(options={})
    function avatar_img (line 93) | def avatar_img(user, options)
    function avatar_url (line 98) | def avatar_url(user, options)
    function default_avatar_url (line 120) | def default_avatar_url(size='small')
    function size_for_string (line 124) | def size_for_string(str)

FILE: app/helpers/votes_helper.rb
  type VotesHelper (line 1) | module VotesHelper
    function vote_box (line 2) | def vote_box(voteable, source, closed = false)
    function calculate_votes_average (line 23) | def calculate_votes_average(voteable)
    function comment_vote_title (line 33) | def comment_vote_title(user_voted, voteable)

FILE: app/helpers/welcome_helper.rb
  type WelcomeHelper (line 1) | module WelcomeHelper

FILE: app/middlewares/dynamic_domain.rb
  class DynamicDomain (line 1) | class DynamicDomain
    method initialize (line 2) | def initialize(app)
    method call (line 6) | def call(env)
    method custom_domain? (line 20) | def custom_domain?(host)

FILE: app/models/activity.rb
  class Activity (line 1) | class Activity
    method url_for_trackable (line 46) | def url_for_trackable(domain)
    method params_for_trackable (line 63) | def params_for_trackable
    method layout_for_trackable (line 83) | def layout_for_trackable
    method to_activity_stream (line 98) | def to_activity_stream
    method humanize_action (line 129) | def humanize_action
    method trackable_class (line 144) | def trackable_class
    method trackable_name (line 148) | def trackable_name
    method trackable_param (line 152) | def trackable_param
    method target_info (line 156) | def target_info
    method target_param (line 160) | def target_param
    method target_name (line 164) | def target_name
    method has_target? (line 168) | def has_target?
    method target_class (line 172) | def target_class
    method to_html (line 180) | def to_html(view_renderer)
    method add_followers (line 189) | def add_followers(*follower_ids)
    method remove_followers (line 198) | def remove_followers(*follower_ids)
    method store_user_name (line 204) | def store_user_name
    method update_websocket (line 216) | def update_websocket

FILE: app/models/announcement.rb
  class Announcement (line 1) | class Announcement
    method check_dates (line 23) | def check_dates

FILE: app/models/answer.rb
  class Answer (line 1) | class Answer
    method update_question_last_target (line 64) | def update_question_last_target
    method minimal (line 68) | def self.minimal
    method can_be_deleted_by? (line 72) | def can_be_deleted_by?(user)
    method on_add_vote (line 81) | def on_add_vote(v, voter_id)
    method on_remove_vote (line 92) | def on_remove_vote(v, voter_id)
    method flagged! (line 103) | def flagged!
    method ban (line 107) | def ban
    method ban (line 114) | def self.ban(ids, options={})
    method unban (line 120) | def unban
    method unban (line 124) | def self.unban(ids, options = {})
    method to_html (line 128) | def to_html
    method disable_limits? (line 132) | def disable_limits?
    method check_unique_answer (line 136) | def check_unique_answer
    method disallow_spam (line 146) | def disallow_spam
    method add_favorite! (line 166) | def add_favorite!(user)
    method remove_favorite! (line 173) | def remove_favorite!(user)
    method favorite_for? (line 180) | def favorite_for?(user)
    method unsolve_question (line 185) | def unsolve_question

FILE: app/models/badge.rb
  class Badge (line 1) | class Badge
    method TOKENS (line 16) | def self.TOKENS
    method gold_badges (line 45) | def self.gold_badges
    method type_of (line 49) | def self.type_of(token)
    method to_param (line 59) | def to_param
    method name (line 63) | def name(locale=I18n.locale)
    method description (line 67) | def description
    method type (line 75) | def type
    method source= (line 79) | def source=(s)
    method source (line 89) | def source
    method set_type (line 96) | def set_type

FILE: app/models/close_request.rb
  class CloseRequest (line 2) | class CloseRequest
    method increment_counter (line 29) | def increment_counter
    method decrement_counter (line 33) | def decrement_counter
    method humanize_action (line 37) | def self.humanize_action(action)
    method group (line 44) | def group
    method should_be_unique (line 49) | def should_be_unique
    method check_reputation (line 61) | def check_reputation

FILE: app/models/comment.rb
  class Comment (line 1) | class Comment
    method update_question_last_target (line 27) | def update_question_last_target
    method group (line 31) | def group
    method can_be_deleted_by? (line 40) | def can_be_deleted_by?(user)
    method find_question (line 49) | def find_question
    method question_id (line 61) | def question_id
    method find_recipient (line 75) | def find_recipient

FILE: app/models/constrains_config.rb
  class ConstrainsConfig (line 2) | class ConstrainsConfig
    method check_reputation_configs (line 25) | def check_reputation_configs

FILE: app/models/custom_html.rb
  class CustomHtml (line 2) | class CustomHtml

FILE: app/models/draft.rb
  class Draft (line 1) | class Draft
    method cleanup! (line 9) | def self.cleanup!

FILE: app/models/export.rb
  class Export (line 1) | class Export
    method initialize (line 2) | def initialize(group)
    method export_model (line 6) | def export_model(model, io, opts = {})
    method to_file (line 25) | def to_file(model, opts = {})
    method to_zip (line 31) | def to_zip(model, zf, opts = {})
    method collection_name_for (line 38) | def collection_name_for(model)

FILE: app/models/external_friends_list.rb
  class ExternalFriendsList (line 1) | class ExternalFriendsList

FILE: app/models/flag.rb
  class Flag (line 1) | class Flag
    method should_be_unique (line 30) | def should_be_unique
    method check_reputation (line 41) | def check_reputation

FILE: app/models/follow_up.rb
  class FollowUp (line 1) | class FollowUp
    method original_question (line 15) | def original_question
    method original_answer (line 19) | def original_answer

FILE: app/models/friend_list.rb
  class FriendList (line 1) | class FriendList

FILE: app/models/geo_position.rb
  class GeoPosition (line 1) | class GeoPosition
    method serialize (line 6) | def serialize(value)
    method deserialize (line 16) | def deserialize(value)
    method initialize (line 22) | def initialize(lat, long)
    method [] (line 26) | def [](arg)
    method to_a (line 35) | def to_a
    method == (line 39) | def ==(other)

FILE: app/models/group.rb
  class Group (line 1) | class Group
    method reset_custom_domain! (line 178) | def reset_custom_domain!
    method members (line 184) | def members(*fields)
    method has_custom_domain? (line 196) | def has_custom_domain?
    method tag_list (line 200) | def tag_list
    method top_tags (line 204) | def top_tags(limit=5)
    method top_tags_strings (line 208) | def top_tags_strings(limit=5)
    method top_users (line 216) | def top_users(limit=5)
    method default_tags= (line 220) | def default_tags=(c)
    method add_member (line 228) | def add_member(user, role)
    method is_member? (line 241) | def is_member?(user)
    method owners (line 245) | def owners
    method mods (line 249) | def mods
    method mods_owners (line 254) | def mods_owners
    method pending? (line 258) | def pending?
    method on_activity (line 262) | def on_activity(action)
    method language= (line 273) | def language=(lang)
    method humanize_reputation_constrain (line 281) | def self.humanize_reputation_constrain(key)
    method humanize_reputation_rewards (line 285) | def self.humanize_reputation_rewards(key)
    method find_file_from_params (line 289) | def self.find_file_from_params(params, request)
    method reset_twitter_account (line 313) | def reset_twitter_account
    method update_twitter_account_with_oauth_token (line 318) | def update_twitter_account_with_oauth_token(token, secret, screen_name)
    method has_twitter_oauth? (line 326) | def has_twitter_oauth?
    method twitter_client (line 330) | def twitter_client
    method reset_widgets! (line 341) | def reset_widgets!
    method create_default_widgets (line 349) | def create_default_widgets
    method is_all_signup? (line 365) | def is_all_signup?
    method is_social_only_signup? (line 369) | def is_social_only_signup?
    method is_email_only_signup? (line 373) | def is_email_only_signup?
    method is_noemail_signup? (line 377) | def is_noemail_signup?
    method has_facebook_login? (line 381) | def has_facebook_login?
    method version_expired? (line 385) | def version_expired?
    method is_stripe_customer? (line 391) | def is_stripe_customer?
    method set_stripe_balance! (line 395) | def set_stripe_balance!
    method downgrade! (line 402) | def downgrade!
    method upgrade! (line 412) | def upgrade!(user, version)
    method unset_late_payment (line 428) | def unset_late_payment
    method set_late_payment (line 432) | def set_late_payment
    method set_incoming_invoice (line 436) | def set_incoming_invoice
    method update_card! (line 444) | def update_card!(stripe_token)
    method charge! (line 456) | def charge!(token,stripe_token)
    method update_plan! (line 477) | def update_plan!(token,customer)
    method create_invoices (line 485) | def create_invoices(customer=nil)
    method upcoming_invoice_date (line 510) | def upcoming_invoice_date
    method check_latex (line 516) | def check_latex
    method initialize_fields (line 522) | def initialize_fields
    method check_domain (line 530) | def check_domain
    method check_reputation_configs (line 536) | def check_reputation_configs
    method modify_attributes (line 589) | def modify_attributes
    method disallow_javascript (line 606) | def disallow_javascript
    method create_widget_lists (line 620) | def create_widget_lists
    method set_default_theme (line 626) | def set_default_theme
    method create_default_tags (line 634) | def create_default_tags
    method set_shapado_version (line 640) | def set_shapado_version

FILE: app/models/group_notification_config.rb
  class GroupNotificationConfig (line 1) | class GroupNotificationConfig

FILE: app/models/group_stat.rb
  class GroupStat (line 1) | class GroupStat
    method viewed! (line 6) | def viewed!

FILE: app/models/invitation.rb
  class Invitation (line 1) | class Invitation
    method check_confirm (line 44) | def check_confirm
    method check_connection (line 48) | def check_connection
    method on_connected (line 53) | def on_connected
    method on_confirmed (line 59) | def on_confirmed
    method on_found_friends (line 65) | def on_found_friends
    method on_followed_suggestions (line 68) | def on_followed_suggestions
    method accepted_by_other? (line 71) | def accepted_by_other?(user)
    method generate_token (line 78) | def generate_token

FILE: app/models/invoices/credit_card.rb
  class CreditCard (line 1) | class CreditCard
    method to_am (line 36) | def to_am
    method valid? (line 47) | def valid?(*args)
    method inspect (line 60) | def inspect
    method ending_in (line 65) | def ending_in

FILE: app/models/invoices/invoice.rb
  class Invoice (line 1) | class Invoice
    method reset! (line 35) | def reset!
    method add_item (line 40) | def add_item(name, description, value, doc)
    method total_in_dollars (line 51) | def total_in_dollars
    method display_name (line 56) | def display_name
    method email (line 60) | def email
    method generate_order_number (line 65) | def generate_order_number

FILE: app/models/invoices/shapado_version.rb
  class ShapadoVersion (line 1) | class ShapadoVersion
    method uses_stripe? (line 22) | def uses_stripe?
    method has_custom_ads? (line 26) | def has_custom_ads?
    method has_custom_js? (line 30) | def has_custom_js?
    method has_custom_domain? (line 34) | def has_custom_domain?
    method is_private? (line 38) | def is_private?
    method has_custom_themes? (line 42) | def has_custom_themes?
    method has_basic_support? (line 46) | def has_basic_support?
    method has_phone_support? (line 50) | def has_phone_support?
    method name (line 54) | def name
    method in_dollars (line 58) | def in_dollars
    method libre (line 62) | def self.libre
    method reload! (line 68) | def self.reload!

FILE: app/models/membership.rb
  class Membership (line 1) | class Membership
    method method_missing (line 59) | def method_missing(name, *args, &block)
    method update_user_info (line 64) | def update_user_info
    method add_to_user (line 68) | def add_to_user
    method remove_from_user (line 72) | def remove_from_user

FILE: app/models/notification_config.rb
  class NotificationConfig (line 1) | class NotificationConfig

FILE: app/models/notifier.rb
  class Notifier (line 1) | class Notifier < ActionMailer::Base
    method give_advice (line 5) | def give_advice(user, group, question, following = false)
    method new_answer (line 35) | def new_answer(user, group, answer, following = false)
    method new_comment (line 66) | def new_comment(group, comment, user, commentable)
    method new_invitation (line 89) | def new_invitation(invitation_id)
    method new_feedback (line 106) | def new_feedback(user, subject, content, email, ip)
    method admin_login (line 122) | def admin_login(ip, user_id)
    method follow (line 137) | def follow(follower, user, group)
    method earned_badge (line 154) | def earned_badge(user, group, badge)
    method created_flag (line 170) | def created_flag(user, group, reason, path)
    method favorited (line 187) | def favorited(user, group, answer)
    method report (line 204) | def report(user, report)
    method initialize_defaults (line 221) | def initialize_defaults(method_name)
    method from_email (line 226) | def from_email(group)
    method language_for (line 230) | def language_for(user=nil)
    method set_locale (line 238) | def set_locale(lang)

FILE: app/models/open_request.rb
  class OpenRequest (line 2) | class OpenRequest
    method should_be_unique (line 28) | def should_be_unique
    method check_reputation (line 39) | def check_reputation

FILE: app/models/page.rb
  class Page (line 1) | class Page
    method by_title (line 41) | def self.by_title(title, conditions = {})
    method current_language (line 49) | def self.current_language

FILE: app/models/question.rb
  class Question (line 1) | class Question
    method minimal (line 152) | def self.minimal
    method followed_up_by (line 156) | def followed_up_by
    method email (line 160) | def email
    method first_tags (line 164) | def first_tags
    method tags= (line 168) | def tags=(t)
    method related_questions (line 182) | def self.related_questions(question, opts = {})
    method viewed! (line 195) | def viewed!(ip)
    method answer_added! (line 203) | def answer_added!
    method answer_removed! (line 208) | def answer_removed!
    method flagged! (line 212) | def flagged!
    method on_add_vote (line 216) | def on_add_vote(v, voter_id)
    method on_remove_vote (line 233) | def on_remove_vote(v, voter)
    method on_activity (line 244) | def on_activity(bring_to_front = true)
    method update_activity_at (line 249) | def update_activity_at
    method ban (line 261) | def ban
    method ban (line 266) | def self.ban(ids, options = {})
    method unban (line 273) | def unban
    method unban (line 277) | def self.unban(ids, options = {})
    method add_follower (line 281) | def add_follower(user)
    method remove_follower (line 289) | def remove_follower(user)
    method follower? (line 297) | def follower?(user)
    method add_contributor (line 301) | def add_contributor(user)
    method remove_contributor (line 308) | def remove_contributor(user)
    method contributor? (line 315) | def contributor?(user)
    method disable_limits? (line 319) | def disable_limits?
    method answered (line 323) | def answered
    method update_last_target (line 327) | def self.update_last_target(question_id, target)
    method can_be_requested_to_close_by? (line 344) | def can_be_requested_to_close_by?(user)
    method can_be_requested_to_open_by? (line 350) | def can_be_requested_to_open_by?(user)
    method can_be_deleted_by? (line 356) | def can_be_deleted_by?(user)
    method close_reason (line 361) | def close_reason
    method last_target= (line 365) | def last_target=(target)
    method attachments= (line 372) | def attachments=(files)
    method find_file_from_params (line 382) | def self.find_file_from_params(params, request)
    method humanize_action (line 393) | def self.humanize_action(action)
    method update_last_target (line 404) | def update_last_target
    method find_last_target (line 428) | def find_last_target
    method map_filter_operators (line 439) | def self.map_filter_operators(quotes, ops)
    method update_answer_count (line 475) | def update_answer_count
    method update_language (line 484) | def update_language
    method group_language (line 488) | def group_language
    method check_useful (line 496) | def check_useful
    method disallow_spam (line 512) | def disallow_spam
    method save_slug (line 525) | def save_slug
    method remove_empty_tags (line 531) | def remove_empty_tags

FILE: app/models/read_list.rb
  class ReadList (line 1) | class ReadList

FILE: app/models/report.rb
  class Report (line 1) | class Report
    method initialize (line 5) | def initialize(group, since = Time.now.yesterday)

FILE: app/models/reputation_stat.rb
  class ReputationEvent (line 2) | class ReputationEvent
  class ReputationStat (line 13) | class ReputationStat

FILE: app/models/reward.rb
  class Reward (line 1) | class Reward
    method reward (line 20) | def reward(group, answer = nil)

FILE: app/models/search.rb
  class Search (line 1) | class Search
    method conditions (line 23) | def conditions
    method update_conditions (line 28) | def update_conditions

FILE: app/models/share.rb
  class Share (line 1) | class Share

FILE: app/models/tag.rb
  class Tag (line 1) | class Tag
    method find_file_from_params (line 29) | def self.find_file_from_params(params, request)

FILE: app/models/tag_list.rb
  class TagList (line 1) | class TagList
    method add_tags (line 10) | def self.add_tags(group_id, *tags)
    method add_tags (line 18) | def add_tags(*tags)

FILE: app/models/theme.rb
  class Theme (line 1) | class Theme
    method find_file_from_params (line 44) | def self.find_file_from_params(params, request)
    method create_default (line 63) | def self.create_default
    method set_has_js (line 69) | def set_has_js(param)
    method increment_version (line 77) | def increment_version
    method js_mime (line 82) | def js_mime
    method set_default_theme (line 87) | def set_default_theme

FILE: app/models/user.rb
  class User (line 3) | class User
    method custom_domain_owned_groups (line 117) | def custom_domain_owned_groups
    method owns_custom_domain_groups? (line 124) | def owns_custom_domain_groups?
    method display_name (line 128) | def display_name
    method find_for_authentication (line 132) | def self.find_for_authentication(conditions={})
    method inactive_membership_list (line 136) | def inactive_membership_list
    method login= (line 140) | def login=(value)
    method email= (line 144) | def email=(value)
    method networks= (line 148) | def networks=(params)
    method find_by_login_or_id (line 152) | def self.find_by_login_or_id(login, conds = {})
    method find_experts (line 156) | def self.find_experts(tags, langs = nil, options = {})
    method to_param (line 180) | def to_param
    method add_preferred_tags (line 188) | def add_preferred_tags(t, group)
    method remove_preferred_tags (line 202) | def remove_preferred_tags(t, group)
    method preferred_tags_on (line 210) | def preferred_tags_on(group)
    method language_filter= (line 221) | def language_filter=(filter)
    method languages_to_filter (line 230) | def languages_to_filter(group)
    method is_preferred_tag? (line 249) | def is_preferred_tag?(group, *tags)
    method admin? (line 258) | def admin?
    method age (line 262) | def age
    method can_modify? (line 269) | def can_modify?(model)
    method can_create_reward? (line 274) | def can_create_reward?(question)
    method groups (line 282) | def groups(options = {})
    method member_of? (line 286) | def member_of?(group)
    method role_on (line 294) | def role_on(group)
    method owner_of? (line 300) | def owner_of?(group)
    method admin_of? (line 304) | def admin_of?(group)
    method mod_of? (line 308) | def mod_of?(group)
    method editor_of? (line 312) | def editor_of?(group)
    method user_of? (line 320) | def user_of?(group)
    method main_language (line 324) | def main_language
    method openid_login? (line 328) | def openid_login?
    method linked_in_login? (line 332) | def linked_in_login?
    method identica_login? (line 336) | def identica_login?
    method twitter_login? (line 340) | def twitter_login?
    method facebook_login? (line 344) | def facebook_login?
    method openid_login? (line 348) | def openid_login?
    method social_connections (line 352) | def social_connections
    method is_socially_connected? (line 361) | def is_socially_connected?
    method has_voted? (line 366) | def has_voted?(voteable)
    method vote_on (line 370) | def vote_on(voteable)
    method favorites (line 374) | def favorites(opts = {})
    method logged! (line 378) | def logged!(group = nil)
    method on_activity (line 392) | def on_activity(activity, group)
    method activity_on (line 397) | def activity_on(group, date)
    method reset_activity_days! (line 420) | def reset_activity_days!(group)
    method upvote! (line 424) | def upvote!(group, v = 1.0)
    method downvote! (line 428) | def downvote!(group, v = 1.0)
    method update_reputation (line 432) | def update_reputation(key, group, v = nil)
    method reputation_on (line 474) | def reputation_on(group)
    method views_on (line 482) | def views_on(group)
    method comments_count_on (line 490) | def comments_count_on(group)
    method stats (line 498) | def stats(*extra_fields)
    method badges_count_on (line 504) | def badges_count_on(group)
    method badges_on (line 513) | def badges_on(group, opts = {})
    method find_badge_on (line 524) | def find_badge_on(group, token, opts = {})
    method add_friend (line 529) | def add_friend(user)
    method remove_friend (line 539) | def remove_friend(user)
    method followers (line 549) | def followers(scope = {}, memberships=false)
    method following (line 570) | def following(group=nil)
    method following? (line 578) | def following?(user)
    method viewed_on! (line 582) | def viewed_on!(group, ip)
    method method_missing (line 592) | def method_missing(method, *args, &block)
    method config_for (line 611) | def config_for(group, init = false)
    method membership_selector_for (line 615) | def membership_selector_for(group)
    method leave (line 623) | def leave(group)
    method join (line 637) | def join(group, &block)
    method join! (line 663) | def join!(group, &block)
    method reputation_stats (line 670) | def reputation_stats(group, options = {})
    method has_flagged? (line 680) | def has_flagged?(flaggeable)
    method has_requested_to_close? (line 686) | def has_requested_to_close?(question)
    method has_requested_to_open? (line 692) | def has_requested_to_open?(question)
    method generate_uuid (line 698) | def generate_uuid
    method find_file_from_params (line 702) | def self.find_file_from_params(params, request)
    method facebook_friends (line 719) | def facebook_friends
    method social_friends_ids (line 723) | def social_friends_ids(provider)
    method twitter_friends (line 727) | def twitter_friends
    method identica_friends (line 731) | def identica_friends
    method linked_in_friends (line 735) | def linked_in_friends
    method suggestions (line 740) | def suggestions(group, limit = 5)
    method suggested_tags (line 756) | def suggested_tags(group, limit = 5)
    method suggested_tags_by_suggested_friends (line 779) | def suggested_tags_by_suggested_friends(group, limit = 5)
    method suggested_social_friends (line 809) | def suggested_social_friends(group, limit = 5)
    method social_external_friends (line 823) | def social_external_friends
    method common_follower (line 837) | def common_follower(user)
    method invite (line 841) | def invite(email, user_role, group, body)
    method revoke_invite (line 852) | def revoke_invite(invitation)
    method can_invite_on? (line 856) | def can_invite_on?(group)
    method accept_invitation (line 864) | def accept_invitation(invitation_id)
    method pending_invitations (line 873) | def pending_invitations(group)
    method after_viewing (line 879) | def after_viewing(question)
    method update_languages (line 889) | def update_languages
    method password_required? (line 902) | def password_required?
    method initialize_fields (line 908) | def initialize_fields
    method update_anonymous_user (line 913) | def update_anonymous_user
    method create_lists (line 925) | def create_lists

FILE: app/models/user_stat.rb
  class UserStat (line 1) | class UserStat
    method add_answer_tags (line 15) | def add_answer_tags(*tags)
    method add_question_tags (line 20) | def add_question_tags(*tags)
    method add_expert_tags (line 25) | def add_expert_tags(*tags)
    method vote_on_tags (line 30) | def vote_on_tags(tags, inc = 1)

FILE: app/models/views_count.rb
  class ViewsCount (line 1) | class ViewsCount
    method cleanup! (line 7) | def self.cleanup!

FILE: app/models/widget_list.rb
  class WidgetList (line 1) | class WidgetList
    method up (line 13) | def up
    method down (line 17) | def down
    method move_to (line 21) | def move_to(pos, widget_id, context)

FILE: app/models/widgets/about_widget.rb
  class AboutWidget (line 1) | class AboutWidget < Widget
    method content (line 4) | def content

FILE: app/models/widgets/adsense_widget.rb
  class AdsenseWidget (line 1) | class AdsenseWidget < Widget
    method ad (line 5) | def ad
    method has_ads (line 20) | def has_ads

FILE: app/models/widgets/ask_question_widget.rb
  class AskQuestionWidget (line 1) | class AskQuestionWidget < Widget

FILE: app/models/widgets/badges_widget.rb
  class BadgesWidget (line 1) | class BadgesWidget < Widget
    method recent_badges (line 5) | def recent_badges(group)
    method check_settings (line 10) | def check_settings

FILE: app/models/widgets/contributors_widget.rb
  class ContributorsWidget (line 1) | class ContributorsWidget < Widget
    method question_only? (line 4) | def question_only?

FILE: app/models/widgets/current_tags_widget.rb
  class CurrentTagsWidget (line 1) | class CurrentTagsWidget < Widget

FILE: app/models/widgets/custom_html_widget.rb
  class CustomHtmlWidget (line 1) | class CustomHtmlWidget < Widget
    method content (line 4) | def content

FILE: app/models/widgets/group_networks_widget.rb
  class GroupNetworksWidget (line 1) | class GroupNetworksWidget < Widget
    method update_settings (line 8) | def update_settings(params)
    method set_default (line 13) | def set_default

FILE: app/models/widgets/groups_widget.rb
  class GroupsWidget (line 1) | class GroupsWidget < Widget
    method recent_groups (line 5) | def recent_groups
    method check_settings (line 10) | def check_settings

FILE: app/models/widgets/pages_widget.rb
  class PagesWidget (line 1) | class PagesWidget < Widget
    method recent_pages (line 5) | def recent_pages(group)
    method check_settings (line 10) | def check_settings

FILE: app/models/widgets/question_badges_widget.rb
  class QuestionBadgesWidget (line 1) | class QuestionBadgesWidget < Widget
    method question_only? (line 4) | def question_only?

FILE: app/models/widgets/related_questions_widget.rb
  class RelatedQuestionsWidget (line 1) | class RelatedQuestionsWidget < Widget
    method question_only? (line 4) | def question_only?

FILE: app/models/widgets/share_widget.rb
  class ShareWidget (line 1) | class ShareWidget < Widget
    method update_settings (line 7) | def update_settings(params)
    method set_default (line 11) | def set_default

FILE: app/models/widgets/suggestions_widget.rb
  class SuggestionsWidget (line 1) | class SuggestionsWidget < Widget

FILE: app/models/widgets/tag_cloud_widget.rb
  class TagCloudWidget (line 1) | class TagCloudWidget < Widget
    method cache_keys (line 5) | def cache_keys(params)
    method check_settings (line 14) | def check_settings

FILE: app/models/widgets/top_groups_widget.rb
  class TopGroupsWidget (line 1) | class TopGroupsWidget < Widget
    method top_groups (line 5) | def top_groups
    method check_settings (line 11) | def check_settings

FILE: app/models/widgets/top_users_widget.rb
  class TopUsersWidget (line 1) | class TopUsersWidget < Widget
    method top_users (line 4) | def top_users(group)
    method check_settings (line 9) | def check_settings

FILE: app/models/widgets/users_widget.rb
  class UsersWidget (line 1) | class UsersWidget < Widget
    method recent_users (line 5) | def recent_users(group)
    method check_settings (line 10) | def check_settings

FILE: app/models/widgets/widget.rb
  class Widget (line 1) | class Widget
    method group (line 17) | def group
    method initialize (line 21) | def initialize(*args)
    method types (line 27) | def self.types(tab="",ads=false)
    method question_only? (line 48) | def question_only?
    method partial_name (line 52) | def partial_name
    method update_settings (line 56) | def update_settings(options)
    method description (line 63) | def description
    method cache_keys (line 67) | def cache_keys(params)
    method limit_to_int (line 72) | def limit_to_int
    method set_name (line 76) | def set_name
    method check_settings (line 80) | def check_settings

FILE: app/mustache/activity_wrapper.rb
  class ActivityWrapper (line 1) | class ActivityWrapper < ModelWrapper
    method action (line 3) | def action
    method user (line 8) | def user
    method user_url (line 13) | def user_url
    method user_name (line 18) | def user_name
    method target_url (line 23) | def target_url
    method target_name (line 28) | def target_name

FILE: app/mustache/answer_form.rb
  class AnswerForm (line 1) | class AnswerForm
    method initialize (line 4) | def initialize(view_context)
    method render_default (line 9) | def render_default
    method editor (line 14) | def editor
    method action_url (line 22) | def action_url
    method author_name_input (line 28) | def author_name_input
    method author_email_input (line 36) | def author_email_input
    method author_website_input (line 44) | def author_website_input
    method recaptcha (line 52) | def recaptcha
    method wiki_checkbox (line 59) | def wiki_checkbox
    method anonymous_checkbox (line 66) | def anonymous_checkbox
    method if_anonymous (line 73) | def if_anonymous
    method if_not_logged_in (line 78) | def if_not_logged_in
    method if_logged_in (line 83) | def if_logged_in
    method adding_field (line 88) | def adding_field(&block)
    method adding_user_field (line 97) | def adding_user_field(&block)
    method question (line 105) | def question
    method answer (line 109) | def answer
    method method_missing (line 113) | def method_missing(name, *args, &block)

FILE: app/mustache/answer_wrapper.rb
  class AnswerWrapper (line 1) | class AnswerWrapper < ModelWrapper
    method foreach_comment (line 8) | def foreach_comment
    method vote_box (line 14) | def vote_box
    method if_has_votes (line 19) | def if_has_votes
    method if_accepted (line 24) | def if_accepted
    method if_has_comments (line 29) | def if_has_comments
    method markdown (line 34) | def markdown
    method author (line 41) | def author
    method editor (line 46) | def editor
    method history_url (line 51) | def history_url
    method creation_date (line 56) | def creation_date
    method formatted_creation_date (line 61) | def formatted_creation_date
    method if_has_editor (line 66) | def if_has_editor
    method pick_as_solution_url (line 70) | def pick_as_solution_url
    method render_toolbar (line 78) | def render_toolbar
    method question (line 85) | def question

FILE: app/mustache/ask_form.rb
  class AskForm (line 1) | class AskForm
    method initialize (line 4) | def initialize(view_context)
    method action_url (line 10) | def action_url
    method geolocalization (line 16) | def geolocalization
    method tags_input (line 26) | def tags_input
    method description_input (line 33) | def description_input
    method attachments (line 40) | def attachments
    method title_input (line 47) | def title_input
    method language_input (line 54) | def language_input
    method submit_button (line 62) | def submit_button
    method anonymous_form (line 69) | def anonymous_form
    method wiki_checkbox (line 74) | def wiki_checkbox
    method anonymous_checkbox (line 84) | def anonymous_checkbox
    method adding_field (line 94) | def adding_field(&block)
    method question (line 103) | def question
    method method_missing (line 107) | def method_missing(name, *args, &block)

FILE: app/mustache/badge_wrapper.rb
  class BadgeWrapper (line 1) | class BadgeWrapper < ModelWrapper
    method badge_url (line 4) | def badge_url
    method user_url (line 9) | def user_url
    method user_name (line 14) | def user_name
    method user (line 19) | def user

FILE: app/mustache/collection_wrapper.rb
  class CollectionWrapper (line 1) | class CollectionWrapper < Enumerator
    method initialize (line 4) | def initialize(target, wrapper_klass, view_context)
    method map (line 10) | def map(&block)

FILE: app/mustache/comment_wrapper.rb
  class CommentWrapper (line 1) | class CommentWrapper < ModelWrapper
    method if_has_votes (line 4) | def if_has_votes
    method vote_box (line 9) | def vote_box
    method markdown (line 15) | def markdown
    method author (line 21) | def author
    method creation_date (line 26) | def creation_date
    method formatted_creation_date (line 31) | def formatted_creation_date

FILE: app/mustache/layouts/theme_layout_view.rb
  type Layouts (line 1) | module Layouts
    class ThemeLayoutView (line 2) | class ThemeLayoutView < ThemeViewBase
      method render_layout (line 3) | def render_layout
      method content (line 9) | def content
      method default_include_stylesheets (line 13) | def default_include_stylesheets
      method default_include_javascript (line 17) | def default_include_javascript
      method default_meta (line 21) | def default_meta
      method default_analytics (line 25) | def default_analytics
      method page_title (line 29) | def page_title
      method page_class (line 33) | def page_class
      method default_stylesheets (line 37) | def default_stylesheets

FILE: app/mustache/model_wrapper.rb
  class ModelWrapper (line 1) | class ModelWrapper
    method initialize (line 5) | def initialize(target, view_context)
    method current_group (line 11) | def current_group
    method respond_to? (line 15) | def respond_to?(method, priv = false)
    method method_missing (line 19) | def method_missing(name, *args, &block)

FILE: app/mustache/question_wrapper.rb
  class QuestionWrapper (line 1) | class QuestionWrapper < ModelWrapper
    method render_question (line 4) | def render_question
    method last_target_user (line 9) | def last_target_user
    method last_target_user_name (line 14) | def last_target_user_name
    method last_target_url (line 20) | def last_target_url
    method last_target_date (line 34) | def last_target_date
    method last_target_time_ago (line 39) | def last_target_time_ago
    method url (line 44) | def url
    method views_count (line 49) | def views_count
    method truncated_description (line 55) | def truncated_description
    method foreach_tag (line 60) | def foreach_tag
    method foreach_related_question (line 66) | def foreach_related_question
    method foreach_comment (line 72) | def foreach_comment
    method foreach_answer (line 78) | def foreach_answer
    method time_ago (line 84) | def time_ago
    method markdown (line 89) | def markdown
    method edit_question_url (line 95) | def edit_question_url
    method history_url (line 100) | def history_url
    method feed_url (line 104) | def feed_url
    method if_has_editor (line 109) | def if_has_editor
    method if_has_comments (line 114) | def if_has_comments
    method editor (line 119) | def editor
    method author (line 125) | def author
    method render_toolbar (line 131) | def render_toolbar

FILE: app/mustache/questions/index_view.rb
  type Questions (line 1) | module Questions
    class IndexView (line 2) | class IndexView < ThemeViewBase
      method render_index (line 5) | def render_index
      method foreach_question (line 10) | def foreach_question
      method paginate_questions (line 15) | def paginate_questions

FILE: app/mustache/questions/show_view.rb
  type Questions (line 1) | module Questions
    class ShowView (line 2) | class ShowView < ThemeViewBase
      method initialize (line 6) | def initialize(*args)
      method render_show_page (line 23) | def render_show_page
      method respond_to? (line 27) | def respond_to?(method, priv = false)
      method method_missing (line 31) | def method_missing(name, *args, &block)
      method answer_form (line 40) | def answer_form
      method vote_box (line 45) | def vote_box

FILE: app/mustache/tag_wrapper.rb
  class TagWrapper (line 1) | class TagWrapper < ModelWrapper
    method tag_url (line 4) | def tag_url
    method count (line 9) | def count
    method followers_count (line 14) | def followers_count
    method follow_button (line 19) | def follow_button

FILE: app/mustache/theme_view_base.rb
  class ThemeViewBase (line 1) | class ThemeViewBase < Poirot::View
    method initialize (line 2) | def initialize(*args)
    method if_front_page (line 7) | def if_front_page
    method if_questions_page (line 12) | def if_questions_page
    method random_question (line 17) | def random_question
    method add_ask_question_box (line 22) | def add_ask_question_box
    method foreach_recent_tag (line 27) | def foreach_recent_tag
    method foreach_recent_badge (line 32) | def foreach_recent_badge
    method foreach_recent_activity (line 37) | def foreach_recent_activity
    method add_header_widgets (line 42) | def add_header_widgets
    method add_footer_widgets (line 47) | def add_footer_widgets
    method add_navbar_widgets (line 52) | def add_navbar_widgets
    method add_sidebar_widgets (line 57) | def add_sidebar_widgets
    method logo_img (line 62) | def logo_img
    method logo_link (line 67) | def logo_link
    method search_form (line 72) | def search_form
    method signin_dropdown (line 78) | def signin_dropdown
    method signin_link (line 83) | def signin_link
    method current_user_link (line 88) | def current_user_link
    method unanswered_questions_url (line 93) | def unanswered_questions_url
    method new_question_url (line 98) | def new_question_url
    method badges_url (line 103) | def badges_url
    method users_url (line 108) | def users_url
    method tags_url (line 113) | def tags_url
    method questions_url (line 118) | def questions_url
    method questions_feed_url (line 123) | def questions_feed_url
    method hot_questions_url (line 128) | def hot_questions_url
    method featured_questions_url (line 133) | def featured_questions_url
    method current_user_url (line 138) | def current_user_url
    method current_group (line 143) | def current_group
    method current_theme (line 148) | def current_theme
    method if_anonymous (line 153) | def if_anonymous
    method if_not_logged_in (line 158) | def if_not_logged_in
    method if_logged_in (line 163) | def if_logged_in
    method ask_form (line 168) | def ask_form

FILE: app/mustache/user_wrapper.rb
  class UserWrapper (line 1) | class UserWrapper < ModelWrapper
    method url (line 4) | def url
    method avatar (line 9) | def avatar
    method avatar_url (line 14) | def avatar_url
    method name (line 19) | def name
    method reputation (line 24) | def reputation
    method gold_badges_count (line 29) | def gold_badges_count
    method silver_badges_count (line 34) | def silver_badges_count
    method bronze_badges_count (line 39) | def bronze_badges_count
    method follow_button (line 44) | def follow_button
    method respond_to? (line 48) | def respond_to?(method, priv = false)
    method current_config (line 53) | def current_config
    method method_missing (line 57) | def method_missing(name, *args, &block)

FILE: config/application.rb
  type Shapado (line 19) | module Shapado
    class Application (line 20) | class Application < Rails::Application

FILE: config/environments/production.rb
  class Goalie::CustomErrorPages (line 62) | class Goalie::CustomErrorPages
    method local_request? (line 63) | def local_request?(*args)

FILE: config/initializers/_mongoid_patches.rb
  type Mongoid (line 1) | module Mongoid
    type State (line 2) | module State
    type Keys (line 8) | module Keys
      type ClassMethods (line 9) | module ClassMethods
        function key (line 10) | def key(*args)
  type Mongoid (line 7) | module Mongoid
    type State (line 2) | module State
    type Keys (line 8) | module Keys
      type ClassMethods (line 9) | module ClassMethods
        function key (line 10) | def key(*args)

FILE: config/initializers/active_tab.rb
  type ActiveTab (line 1) | module ActiveTab
    function included (line 2) | def self.included(base)
    type ClassMethods (line 6) | module ClassMethods
      function tabs (line 9) | def tabs(tabs)
      function subtabs (line 23) | def subtabs(subtabs)

FILE: config/initializers/exceptions.rb
  class Error404 (line 1) | class Error404 < Exception

FILE: config/initializers/logger.rb
  class Mongoid::Logger (line 1) | class Mongoid::Logger
    method debug (line 2) | def debug(message)

FILE: config/initializers/patches.rb
  class Mutex (line 3) | class Mutex
    method lock_with_hack (line 4) | def lock_with_hack
  type OmniAuth (line 20) | module OmniAuth
    type Strategies (line 21) | module Strategies
      class Facebook (line 22) | class Facebook
        method call! (line 23) | def call!(env)

FILE: lib/fixed_array.rb
  class FixedArray (line 1) | class FixedArray < Array
    method initialize (line 2) | def initialize(max_size = 10)
    method add (line 6) | def add(element)

FILE: lib/flash_helper/application.rb
  type FlashHelper (line 1) | module FlashHelper #:nodoc
    type ApplicationController (line 2) | module ApplicationController
      function flash_warning (line 15) | def flash_warning(*args)
      function flash_message (line 27) | def flash_message(*args)
      function flash_notice (line 43) | def flash_notice(*args)
      function append_to_flash (line 53) | def append_to_flash(key, *args)

FILE: lib/flash_helper/application_helper.rb
  type FlashHelper (line 1) | module FlashHelper #:nodoc
    type ApplicationHelper (line 2) | module ApplicationHelper
      function show_flash_messages (line 80) | def show_flash_messages(options={})

FILE: lib/jobs/activities.rb
  type Jobs (line 1) | module Jobs
    class Activities (line 2) | class Activities
      method on_activity (line 5) | def self.on_activity(group_id, user_id)
      method on_update_answer (line 19) | def self.on_update_answer(answer_id)
      method on_create_answer (line 26) | def self.on_create_answer(answer_id)
      method on_destroy_answer (line 31) | def self.on_destroy_answer(user_id, attributes)
      method on_comment (line 46) | def self.on_comment(commentable_id, commentable_class, comment_id, l...
      method on_follow (line 79) | def self.on_follow(follower_id, followed_id, group_id)
      method on_unfollow (line 97) | def self.on_unfollow(follower_id, followed_id, group_id)
      method on_flag (line 100) | def self.on_flag(user_id, group_id, reason, path)
      method on_rollback (line 110) | def self.on_rollback(question_id)
      method on_admin_connect (line 115) | def self.on_admin_connect(ip, user_id)

FILE: lib/jobs/answers.rb
  type Jobs (line 2) | module Jobs
    class Answers (line 3) | class Answers
      method on_favorite_answer (line 6) | def self.on_favorite_answer(answer_id, favoriter_id, link)
      method on_create_answer (line 40) | def self.on_create_answer(question_id, answer_id, link)

FILE: lib/jobs/base.rb
  type Jobs (line 2) | module Jobs
    type Base (line 3) | module Base
      function create_badge (line 6) | def create_badge(user, group, opts, check_opts = {})
      function shorten_url (line 66) | def shorten_url(url, entry)
      function make_status (line 80) | def make_status(text, link, limit)

FILE: lib/jobs/images.rb
  type Jobs (line 1) | module Jobs
    class Images (line 2) | class Images
      method generate_user_thumbnails (line 5) | def self.generate_user_thumbnails(user_id)
      method generate_group_thumbnails (line 12) | def self.generate_group_thumbnails(group_id)
      method generate_thumbnails (line 20) | def self.generate_thumbnails(object, original_image)

FILE: lib/jobs/mailer.rb
  type Jobs (line 1) | module Jobs
    class Mailer (line 2) | class Mailer
      method on_ask_question (line 5) | def self.on_ask_question(question_id)
      method on_new_comment (line 27) | def self.on_new_comment(commentable_id, commentable_class, comment_id)
      method on_favorite_answer (line 39) | def self.on_favorite_answer(answer_id, current_user_id)
      method on_follow (line 47) | def self.on_follow(current_user_id, user_id, current_group_id)
      method on_new_invitation (line 56) | def self.on_new_invitation(invitation_id)

FILE: lib/jobs/questions.rb
  type Jobs (line 1) | module Jobs
    class Questions (line 2) | class Questions
      method on_question_solved (line 5) | def self.on_question_solved(question_id, answer_id)
      method on_question_unsolved (line 32) | def self.on_question_unsolved(question_id, answer_id)
      method on_view_question (line 53) | def self.on_view_question(question_id)
      method on_ask_question (line 71) | def self.on_ask_question(question_id,link)
      method on_destroy_question (line 91) | def self.on_destroy_question(user_id, attributes)
      method on_question_followed (line 106) | def self.on_question_followed(question_id, follower_id)
      method on_retag_question (line 122) | def self.on_retag_question(question_id, user_id)
      method close_reward (line 129) | def self.close_reward(question_id)
      method on_start_reward (line 136) | def self.on_start_reward(question_id)
      method on_close_reward (line 150) | def self.on_close_reward(question_id, answer_id, user_id)

FILE: lib/jobs/tags.rb
  type Jobs (line 1) | module Jobs
    class Tags (line 2) | class Tags
      method question_retagged (line 5) | def self.question_retagged(question_id, new_tags, old_tags, at_time)

FILE: lib/jobs/themes.rb
  type Jobs (line 1) | module Jobs
    class Themes (line 2) | class Themes
      method generate_stylesheet (line 5) | def self.generate_stylesheet(theme_id)
      method define_vars (line 51) | def self.define_vars(theme)

FILE: lib/jobs/users.rb
  type Jobs (line 1) | module Jobs
    class Users (line 2) | class Users
      method post_to_twitter (line 5) | def self.post_to_twitter(user_id, text)
      method on_update_user (line 13) | def self.on_update_user(user_id, group_id)
      method get_facebook_friends (line 22) | def self.get_facebook_friends(user_id)
      method get_twitter_friends (line 30) | def self.get_twitter_friends(user_id)
      method get_identica_friends (line 42) | def self.get_identica_friends(user_id)
      method get_linked_in_friends (line 52) | def self.get_linked_in_friends(user_id)

FILE: lib/jobs/votes.rb
  type Jobs (line 1) | module Jobs
    class Votes (line 2) | class Votes
      method on_vote_question (line 5) | def self.on_vote_question(question_id, value, user_id, group_id)
      method on_vote_answer (line 33) | def self.on_vote_answer(answer_id, value, user_id, group_id)
      method on_vote (line 92) | def self.on_vote(voteable, value, user, group)
      method on_vote_user (line 110) | def self.on_vote_user(voteable, value, user, group)

FILE: lib/level_system.rb
  class LevelSystem (line 3) | class LevelSystem
    method initialize (line 8) | def initialize
    method level_for (line 15) | def level_for(reputation)
    method limit_for (line 25) | def limit_for(level)

FILE: lib/multiauth_support.rb
  type MultiauthSupport (line 1) | module MultiauthSupport
    type ClassMethods (line 37) | module ClassMethods
      function authenticate (line 38) | def authenticate(fields)
    function connect (line 86) | def connect(fields)
    function merge_user (line 113) | def merge_user(user)
    function password_required? (line 226) | def password_required?
    function twitter_client (line 232) | def twitter_client
    function facebook_client (line 243) | def facebook_client(property = 'friends', params = 'fields[]=name&fiel...
    function identica_client (line 248) | def identica_client
    function linked_in_client (line 254) | def linked_in_client
    function get_identica_friends (line 260) | def get_identica_friends
    function get_linked_in_friends (line 264) | def get_linked_in_friends
    function check_social_friends (line 274) | def check_social_friends
    function check_user_info (line 289) | def check_user_info(fields, provider)
    function handle_facebook (line 316) | def handle_facebook(fields)
    function handle_twitter (line 330) | def handle_twitter(fields)
    function handle_identica (line 341) | def handle_identica(fields)
    function handle_linked_in (line 350) | def handle_linked_in(fields)

FILE: lib/nominatim.rb
  type Nominatim (line 4) | module Nominatim
    class Place (line 5) | class Place
      method initialize (line 7) | def initialize(lat, long)
      method get_address (line 12) | def get_address
      method get_address_from_country (line 23) | def get_address_from_country(country)

FILE: lib/shapado/controllers/access.rb
  type Shapado (line 1) | module Shapado
    type Controllers (line 2) | module Controllers
      type Access (line 3) | module Access
        function included (line 4) | def self.included(base)
        function logged_in? (line 10) | def logged_in?
        function check_group_access (line 14) | def check_group_access
        function admin_required (line 38) | def admin_required
        function moderator_required (line 44) | def moderator_required
        function owner_required (line 50) | def owner_required
        function login_required (line 56) | def login_required
        function after_sign_in_path_for (line 69) | def after_sign_in_path_for(resource)

FILE: lib/shapado/controllers/locale.rb
  type Shapado (line 1) | module Shapado
    type Controllers (line 2) | module Controllers
      type Locale (line 3) | module Locale
        function included (line 4) | def self.included(base)
        function current_languages (line 10) | def current_languages
        function find_languages (line 14) | def find_languages
        function language_conditions (line 39) | def language_conditions
        function available_locales (line 52) | def available_locales; AVAILABLE_LOCALES; end
        function set_locale (line 54) | def set_locale
        function find_valid_locale (line 77) | def find_valid_locale(lang)

FILE: lib/shapado/controllers/routes.rb
  type Shapado (line 1) | module Shapado
    type Controllers (line 2) | module Controllers
      type Routes (line 3) | module Routes
        function included (line 4) | def self.included(base)
        function javascript_group_path (line 16) | def javascript_group_path(group, theme_id, theme_version)
        function css_group_path (line 20) | def css_group_path(group, theme_id, theme_version)
        function bg_image_path (line 24) | def bg_image_path(group, theme_id, theme_version)
        function favicon_group_path (line 28) | def favicon_group_path(group)
        function tag_icon_path (line 32) | def tag_icon_path(group,tag_name)
        function avatar_user_path (line 39) | def avatar_user_path(user, size = nil)
        function logo_path (line 47) | def logo_path(group, size = nil)
        function question_attachment_path (line 55) | def question_attachment_path(group,question, file, attach_id)

FILE: lib/shapado/controllers/utils.rb
  type Shapado (line 1) | module Shapado
    type Controllers (line 2) | module Controllers
      type Utils (line 3) | module Utils
        function included (line 4) | def self.included(base)
        function current_tags (line 10) | def current_tags
        function set_page_title (line 20) | def set_page_title(title)
        function page_title (line 24) | def page_title
        function feed_urls (line 48) | def feed_urls
        function add_feeds_url (line 52) | def add_feeds_url(url, title="atom")
        function track_pageview (line 56) | def track_pageview
        function is_bot? (line 62) | def is_bot?
        function build_date (line 66) | def build_date(params, name)
        function build_datetime (line 70) | def build_datetime(params, name)
        function bodys_class (line 84) | def bodys_class(params)

FILE: lib/shapado/file_wrapper.rb
  type Shapado (line 1) | module Shapado
    class FileWrapper (line 2) | class FileWrapper
      method initialize (line 4) | def initialize(path, content_type)
      method get (line 9) | def get
      method get_file (line 13) | def get_file
      method size (line 17) | def size
      method content_type (line 21) | def content_type
      method read (line 25) | def read(size)
      method close (line 31) | def close(*args)

FILE: lib/shapado/models/custom_html_methods.rb
  type Shapado (line 1) | module Shapado
    type Models (line 2) | module Models
      type CustomHtmlMethods (line 3) | module CustomHtmlMethods
        function question_prompt (line 4) | def question_prompt
        function question_help (line 16) | def question_help
        function head (line 27) | def head
        function head_tag (line 32) | def head_tag
        function footer (line 36) | def footer
        function question_prompt= (line 43) | def question_prompt=(value)
        function question_help= (line 47) | def question_help=(value)
        function head= (line 51) | def head=(value)
        function head_tag= (line 55) | def head_tag=(value)
        function footer= (line 59) | def footer=(value)

FILE: lib/shapado/models/geo_common.rb
  type Shapado (line 1) | module Shapado
    type Models (line 2) | module Models
      type GeoCommon (line 3) | module GeoCommon
        function float_position (line 13) | def float_position
        function set_address (line 21) | def set_address(ip)
        function address_name (line 46) | def address_name
        function point (line 58) | def point(max_distance=6)

FILE: lib/shapado/models/networks.rb
  type Shapado (line 1) | module Shapado
    type Models (line 2) | module Models
      type Networks (line 3) | module Networks
        function find_networks (line 12) | def find_networks(params)

FILE: lib/shapado/models/trackable.rb
  type Shapado (line 1) | module Shapado
    type Models (line 2) | module Models
      type Trackable (line 3) | module Trackable
        function __generate_trackable_info (line 14) | def __generate_trackable_info
        function __generate_target_info (line 18) | def __generate_target_info
        function __resolve_trackable_scope (line 27) | def __resolve_trackable_scope
        function __resolve_target (line 39) | def __resolve_target
        function __on_create (line 45) | def __on_create
        function __on_update (line 49) | def __on_update
        function __on_destroy (line 53) | def __on_destroy
        function __create_activity (line 57) | def __create_activity(action, opts = {})
        type ClassMethods (line 105) | module ClassMethods
          function track_activities (line 106) | def track_activities(*args, &cb)
          function __fields_for_class (line 115) | def __fields_for_class(object, fields)
          function trackable_opts (line 140) | def trackable_opts

FILE: lib/shapado/scripting/application.rb
  type Shapado (line 1) | module Shapado
    type Scripting (line 2) | module Scripting
      class Application (line 3) | class Application < Rails::Application

FILE: lib/smtp_tls.rb
  function do_start (line 6) | def do_start(helodomain, user, secret, authtype)
  function do_helo (line 42) | def do_helo(helodomain)
  function starttls (line 59) | def starttls
  function quit (line 63) | def quit

FILE: lib/sso_strategy.rb
  type OmniAuth (line 1) | module OmniAuth
    type Strategies (line 2) | module Strategies
      class SsoStrategy (line 3) | class SsoStrategy
        method initialize (line 6) | def initialize(app, options = {}, &block)
        method call! (line 13) | def call!(env)
        method request_phase (line 21) | def request_phase
        method callback_phase (line 27) | def callback_phase
        method auth_hash (line 32) | def auth_hash
        method user_info (line 40) | def user_info
        method check_cookies (line 51) | def check_cookies

FILE: lib/subdomains.rb
  type Subdomains (line 21) | module Subdomains
    function included (line 22) | def self.included(controller)
    function subdomain_url (line 28) | def subdomain_url(subdomain, options = {})
    function domain_url (line 36) | def domain_url(options = {})

FILE: lib/sweepers.rb
  type Sweepers (line 1) | module Sweepers
    function sweep_question_views (line 2) | def sweep_question_views
    function sweep_answer (line 8) | def sweep_answer(answer)
    function sweep_widgets (line 16) | def sweep_widgets
    function sweep_user_views (line 20) | def sweep_user_views
    function sweep_question (line 24) | def sweep_question(question)
    function sweep_new_users (line 31) | def sweep_new_users(group)
    function expire_fragment_for (line 36) | def expire_fragment_for(name, *args)

FILE: lib/tasks/fix_db.rake
  class Question (line 3) | class Question
    method set_created_at (line 4) | def set_created_at; end
    method set_updated_at (line 5) | def set_updated_at; end
  class Answer (line 8) | class Answer
    method set_created_at (line 9) | def set_created_at; end
    method set_updated_at (line 10) | def set_updated_at; end
  class Group (line 13) | class Group
    method set_created_at (line 14) | def set_created_at; end
    method set_updated_at (line 15) | def set_updated_at; end
  class Activity (line 18) | class Activity
    method set_created_at (line 19) | def set_created_at; end
    method set_updated_at (line 20) | def set_updated_at; end

FILE: lib/tasks/setup.rake
  class Question (line 153) | class Question
    method set_created_at (line 154) | def set_created_at; end
    method set_updated_at (line 155) | def set_updated_at; end
  class Answer (line 158) | class Answer
    method set_created_at (line 159) | def set_created_at; end
    method set_updated_at (line 160) | def set_updated_at; end
  class Group (line 163) | class Group
    method set_created_at (line 164) | def set_created_at; end
    method set_updated_at (line 165) | def set_updated_at; end

FILE: lib/twitter_renderer.rb
  class TwitterRenderer (line 1) | class TwitterRenderer

FILE: public/codemirror/demo/complete.js
  function stopEvent (line 3) | function stopEvent() {
  function addStop (line 7) | function addStop(event) {
  function connect (line 11) | function connect(node, type, handler) {
  function forEach (line 19) | function forEach(arr, f) {
  function startComplete (line 35) | function startComplete() {
  function getCompletions (line 119) | function getCompletions(token, context) {

FILE: public/codemirror/test/test.js
  function htmlEscape (line 225) | function htmlEscape(str) {
  function forEach (line 228) | function forEach(arr, f) {
  function Failure (line 232) | function Failure(why) {this.message = why;}
  function test (line 234) | function test(name, run) {tests.push({name: name, func: run});}
  function testCM (line 235) | function testCM(name, run, opts) {
  function runTests (line 243) | function runTests() {
  function eq (line 265) | function eq(a, b, msg) {
  function eqPos (line 268) | function eqPos(a, b, msg) {
  function is (line 272) | function is(a, msg) {

FILE: spec/controllers/close_requests_controller_spec.rb
  function valid_attributes (line 16) | def valid_attributes

FILE: spec/controllers/themes_controller_spec.rb
  function valid_attributes (line 13) | def valid_attributes

FILE: spec/spec_helper.rb
  function stub_authentication (line 41) | def stub_authentication(user = nil)
  function stub_group (line 49) | def stub_group(group = nil)
  function create_group (line 56) | def create_group

FILE: vendor/assets/javascripts/codemirror/codemirror.js
  function CodeMirror (line 9) | function CodeMirror(place, givenOptions) {
  function save (line 1716) | function save() {textarea.value = instance.getValue();}
  function wrappedSubmit (line 1722) | function wrappedSubmit() {
  function copyState (line 1752) | function copyState(mode, state) {
  function startState (line 1764) | function startState(mode, a1, a2) {
  function StringStream (line 1770) | function StringStream(string) {
  function cased (line 1808) | function cased(str) {return caseInsensitive ? str.toLowerCase() : str;}
  function Line (line 1826) | function Line(text, styles) {
  function span (line 1982) | function span(text, style) {
  function nextMark (line 2004) | function nextMark() {
  function copyStyles (line 2046) | function copyStyles(from, to, source, dest) {
  function History (line 2063) | function History() {
  function stopMethod (line 2094) | function stopMethod() {e_stop(this);}
  function addStop (line 2096) | function addStop(event) {
  function e_preventDefault (line 2101) | function e_preventDefault(e) {
  function e_stopPropagation (line 2105) | function e_stopPropagation(e) {
  function e_stop (line 2109) | function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);}
  function e_target (line 2110) | function e_target(e) {return e.target || e.srcElement;}
  function e_button (line 2111) | function e_button(e) {
  function connect (line 2120) | function connect(node, type, handler, disconnect) {
  function Delayed (line 2132) | function Delayed() {this.id = null;}
  function countColumn (line 2171) | function countColumn(string, end) {
  function computedStyle (line 2183) | function computedStyle(elt) {
  function eltOffset (line 2189) | function eltOffset(node, screen) {
  function eltText (line 2203) | function eltText(node) {
  function posEq (line 2208) | function posEq(a, b) {return a.line == b.line && a.ch == b.ch;}
  function posLess (line 2209) | function posLess(a, b) {return a.line < b.line || (a.line == b.line && a...
  function copyPos (line 2210) | function copyPos(x) {return {line: x.line, ch: x.ch};}
  function htmlEscape (line 2213) | function htmlEscape(str) {
  function editEnd (line 2227) | function editEnd(from, to) {
  function indexOf (line 2235) | function indexOf(collection, elt) {

FILE: vendor/assets/javascripts/codemirror/mode/clike/clike.js
  function tokenBase (line 12) | function tokenBase(stream, state) {
  function tokenString (line 54) | function tokenString(quote) {
  function tokenComment (line 67) | function tokenComment(stream, state) {
  function Context (line 79) | function Context(indented, column, type, align, prev) {
  function pushContext (line 86) | function pushContext(state, col, type) {
  function popContext (line 89) | function popContext(state) {
  function words (line 150) | function words(str) {
  function cppHook (line 159) | function cppHook(stream, state) {
  function tokenAtString (line 166) | function tokenAtString(stream, state) {

FILE: vendor/assets/javascripts/codemirror/mode/clojure/clojure.js
  function makeKeywords (line 10) | function makeKeywords(str) {
  function stateStack (line 52) | function stateStack(indent, type, prev) { // represents a state stack ob...
  function pushStack (line 58) | function pushStack(state, indent, type) {
  function popStack (line 62) | function popStack(state) {
  function isNumber (line 66) | function isNumber(ch, stream){

FILE: vendor/assets/javascripts/codemirror/mode/coffeescript/coffeescript.js
  function wordRegexp (line 8) | function wordRegexp(words) {
  function tokenBase (line 39) | function tokenBase(stream, state) {
  function tokenFactory (line 149) | function tokenFactory(delimiter, outclass) {
  function indent (line 179) | function indent(stream, state, type) {
  function dedent (line 198) | function dedent(stream, state) {
  function tokenLexer (line 222) | function tokenLexer(stream, state) {

FILE: vendor/assets/javascripts/codemirror/mode/css/css.js
  function ret (line 3) | function ret(style, tp) {type = tp; return style;}
  function tokenBase (line 5) | function tokenBase(stream, state) {
  function tokenCComment (line 46) | function tokenCComment(stream, state) {
  function tokenSGMLComment (line 58) | function tokenSGMLComment(stream, state) {
  function tokenString (line 70) | function tokenString(quote) {

FILE: vendor/assets/javascripts/codemirror/mode/groovy/groovy.js
  function words (line 2) | function words(str) {
  function tokenBase (line 17) | function tokenBase(stream, state) {
  function startString (line 66) | function startString(quote, stream, state) {
  function tokenBaseUntilBrace (line 92) | function tokenBaseUntilBrace() {
  function tokenComment (line 110) | function tokenComment(stream, state) {
  function expectExpression (line 122) | function expectExpression(last) {
  function Context (line 127) | function Context(indented, column, type, align, prev) {
  function pushContext (line 134) | function pushContext(state, col, type) {
  function popContext (line 137) | function popContext(state) {

FILE: vendor/assets/javascripts/codemirror/mode/haskell/haskell.js
  function switchState (line 3) | function switchState(source, setState, f) {
  function normal (line 19) | function normal(source, setState) {
  function ncomment (line 110) | function ncomment(type, nest) {
  function stringLiteral (line 134) | function stringLiteral(source, setState) {
  function stringGap (line 157) | function stringGap(source, setState) {
  function setType (line 169) | function setType(t) {

FILE: vendor/assets/javascripts/codemirror/mode/htmlmixed/htmlmixed.js
  function html (line 6) | function html(stream, state) {
  function maybeBackup (line 22) | function maybeBackup(stream, pat, style) {
  function javascript (line 28) | function javascript(stream, state) {
  function css (line 38) | function css(stream, state) {

FILE: vendor/assets/javascripts/codemirror/mode/javascript/javascript.js
  function kw (line 8) | function kw(type) {return {type: type, style: "keyword"};}
  function chain (line 23) | function chain(stream, state, f) {
  function nextUntilUnescaped (line 28) | function nextUntilUnescaped(stream, end) {
  function ret (line 41) | function ret(tp, style, cont) {
  function jsTokenBase (line 46) | function jsTokenBase(stream, state) {
  function jsTokenString (line 94) | function jsTokenString(quote) {
  function jsTokenComment (line 102) | function jsTokenComment(stream, state) {
  function JSLexical (line 118) | function JSLexical(indented, column, type, align, prev, info) {
  function inScope (line 127) | function inScope(state, varname) {
  function parseJS (line 132) | function parseJS(state, style, type, content, stream) {
  function pass (line 156) | function pass() {
  function cont (line 159) | function cont() {
  function register (line 163) | function register(varname) {
  function pushcontext (line 176) | function pushcontext() {
  function popcontext (line 180) | function popcontext() {
  function pushlex (line 184) | function pushlex(type, info) {
  function poplex (line 192) | function poplex() {
  function expect (line 202) | function expect(wanted) {
  function statement (line 210) | function statement(type) {
  function expression (line 228) | function expression(type) {
  function maybeoperator (line 238) | function maybeoperator(type, value) {
  function maybelabel (line 246) | function maybelabel(type) {
  function property (line 250) | function property(type) {
  function objprop (line 253) | function objprop(type) {
  function commasep (line 257) | function commasep(what, end) {
  function block (line 268) | function block(type) {
  function vardef1 (line 272) | function vardef1(type, value) {
  function vardef2 (line 276) | function vardef2(type, value) {
  function forspec1 (line 280) | function forspec1(type) {
  function formaybein (line 286) | function formaybein(type, value) {
  function forspec2 (line 290) | function forspec2(type, value) {
  function forspec3 (line 295) | function forspec3(type) {
  function functiondef (line 298) | function functiondef(type, value) {
  function funarg (line 302) | function funarg(type, value) {

FILE: vendor/assets/javascripts/codemirror/mode/jinja2/jinja2.js
  function tokenBase (line 7) | function tokenBase (stream, state) {
  function inTag (line 17) | function inTag (close) {

FILE: vendor/assets/javascripts/codemirror/mode/lua/lua.js
  function prefixRE (line 8) | function prefixRE(words) {
  function wordRE (line 11) | function wordRE(words) {
  function readBracket (line 57) | function readBracket(stream) {
  function normal (line 64) | function normal(stream, state) {
  function bracketed (line 87) | function bracketed(level, style) {
  function string (line 100) | function string(quote) {

FILE: vendor/assets/javascripts/codemirror/mode/markdown/markdown.js
  function switchInline (line 23) | function switchInline(stream, state, f) {
  function switchBlock (line 28) | function switchBlock(stream, state, f) {
  function blockNormal (line 36) | function blockNormal(stream, state) {
  function htmlBlock (line 76) | function htmlBlock(stream, state) {
  function inlineNormal (line 87) | function inlineNormal(stream, state) {
  function linkText (line 124) | function linkText(stream, state) {
  function linkHref (line 136) | function linkHref(stream, state) {
  function footnoteLink (line 145) | function footnoteLink(stream, state) {
  function footnoteUrl (line 153) | function footnoteUrl(stream, state) {
  function inlineElement (line 160) | function inlineElement(type, endChar, next) {

FILE: vendor/assets/javascripts/codemirror/mode/ntriples/ntriples.js
  function transitState (line 45) | function transitState(currState, c) {

FILE: vendor/assets/javascripts/codemirror/mode/pascal/pascal.js
  function words (line 2) | function words(str) {
  function tokenBase (line 16) | function tokenBase(stream, state) {
  function tokenString (line 58) | function tokenString(quote) {
  function tokenComment (line 70) | function tokenComment(stream, state) {
  function Context (line 82) | function Context(indented, column, type, align, prev) {
  function pushContext (line 89) | function pushContext(state, col, type) {
  function popContext (line 92) | function popContext(state) {

FILE: vendor/assets/javascripts/codemirror/mode/php/php.js
  function keywords (line 2) | function keywords(str) {
  function heredoc (line 7) | function heredoc(delim) {
  function dispatch (line 50) | function dispatch(stream, state) { // TODO open PHP inside text/css

FILE: vendor/assets/javascripts/codemirror/mode/plsql/plsql.js
  function chain (line 9) | function chain(stream, state, f) {
  function ret (line 15) | function ret(tp, style) {
  function tokenBase (line 20) | function tokenBase(stream, state) {
  function tokenString (line 80) | function tokenString(quote) {
  function tokenComment (line 93) | function tokenComment(stream, state) {
  function keywords (line 124) | function keywords(str) {

FILE: vendor/assets/javascripts/codemirror/mode/python/python.js
  function wordRegexp (line 4) | function wordRegexp(words) {
  function tokenBase (line 47) | function tokenBase(stream, state) {
  function tokenStringFactory (line 149) | function tokenStringFactory(delimiter) {
  function indent (line 182) | function indent(stream, state, type) {
  function dedent (line 201) | function dedent(stream, state) {
  function tokenLexer (line 225) | function tokenLexer(stream, state) {

FILE: vendor/assets/javascripts/codemirror/mode/r/r.js
  function wordObj (line 2) | function wordObj(str) {
  function tokenBase (line 14) | function tokenBase(stream, state) {
  function tokenString (line 64) | function tokenString(quote) {
  function push (line 85) | function push(state, type, stream) {
  function pop (line 92) | function pop(state) {

FILE: vendor/assets/javascripts/codemirror/mode/rst/rst.js
  function setState (line 2) | function setState(state, fn, ctx) {
  function setCtx (line 7) | function setCtx(state, ctx) {
  function setNormal (line 11) | function setNormal(state, ch) {
  function hasMode (line 20) | function hasMode(mode) {
  function getMode (line 34) | function getMode(mode) {
  function normal (line 60) | function normal(stream, state) {
  function inline (line 207) | function inline(stream, state) {
  function directive (line 246) | function directive(stream, state) {
  function body (line 274) | function body(stream, state) {
  function comment (line 287) | function comment(stream, state) {
  function verbatim (line 291) | function verbatim(stream, state) {
  function block (line 307) | function block(stream, state, token) {

FILE: vendor/assets/javascripts/codemirror/mode/ruby/ruby.js
  function wordObj (line 2) | function wordObj(words) {
  function chain (line 21) | function chain(newtok, stream, state) {
  function tokenBase (line 26) | function tokenBase(stream, state) {
  function tokenBaseUntilBrace (line 101) | function tokenBaseUntilBrace() {
  function readQuoted (line 116) | function readQuoted(quote, style, embed, unescaped) {
  function readHereDoc (line 133) | function readHereDoc(phrase) {
  function readBlockComment (line 140) | function readBlockComment(stream, state) {

FILE: vendor/assets/javascripts/codemirror/mode/rust/rust.js
  function r (line 26) | function r(tc, style) {
  function tokenBase (line 31) | function tokenBase(stream, state) {
  function tokenString (line 90) | function tokenString(stream, state) {
  function tokenComment (line 104) | function tokenComment(depth) {
  function pass (line 130) | function pass() {
  function cont (line 133) | function cont() {
  function pushlex (line 138) | function pushlex(type, info) {
  function poplex (line 147) | function poplex() {
  function typecx (line 155) | function typecx() { cx.state.keywords = typeKeywords; }
  function valcx (line 156) | function valcx() { cx.state.keywords = valKeywords; }
  function commasep (line 159) | function commasep(comb, end) {
  function block (line 171) | function block(type) {
  function endstatement (line 182) | function endstatement(type) {
  function expression (line 186) | function expression(type) {
  function maybeop (line 199) | function maybeop(type) {
  function maybeprop (line 206) | function maybeprop(type) {
  function exprbrace (line 210) | function exprbrace(type) {
  function recliteral (line 219) | function recliteral(type) {
  function blockvars (line 226) | function blockvars(type) {
  function letdef (line 232) | function letdef(type) {
  function maybetype (line 238) | function maybetype(type) {
  function inop (line 242) | function inop(type) {
  function fndef (line 246) | function fndef(type) {
  function tydef (line 254) | function tydef(type) {
  function tagdef (line 260) | function tagdef(type) {
  function tagblock (line 267) | function tagblock(type) {
  function mod (line 273) | function mod(type) {
  function typarams (line 278) | function typarams(type) {
  function argdef (line 283) | function argdef(type) {
  function rtype (line 288) | function rtype(type) {
  function rtypemaybeparam (line 296) | function rtypemaybeparam(type) {
  function fntype (line 300) | function fntype(type) {
  function pattern (line 305) | function pattern(type) {
  function patternmaybeop (line 311) | function patternmaybeop(type) {
  function altbody (line 316) | function altbody(type) {
  function altblock (line 320) | function altblock(type) {
  function macro (line 327) | function macro(type) {
  function matchBrackets (line 331) | function matchBrackets(type, comb) {
  function parse (line 338) | function parse(state, stream, style) {

FILE: vendor/assets/javascripts/codemirror/mode/scheme/scheme.js
  function makeKeywords (line 9) | function makeKeywords(str) {
  function stateStack (line 19) | function stateStack(indent, type, prev) { // represents a state stack ob...
  function pushStack (line 25) | function pushStack(state, indent, type) {
  function popStack (line 29) | function popStack(state) {
  function isNumber (line 38) | function isNumber(ch, stream){

FILE: vendor/assets/javascripts/codemirror/mode/smalltalk/smalltalk.js
  function chain (line 5) | function chain(stream, state, f) {
  function ret (line 11) | function ret(tp, style) {
  function tokenBase (line 16) | function tokenBase(stream, state) {
  function tokenString (line 40) | function tokenString(quote) {
  function tokenComment (line 53) | function tokenComment(quote) {
  function Context (line 65) | function Context(indented, column, type, align, prev) {
  function pushContext (line 73) | function pushContext(state, col, type) {
  function popContext (line 76) | function popContext(state) {

FILE: vendor/assets/javascripts/codemirror/mode/sparql/sparql.js
  function wordRegexp (line 5) | function wordRegexp(words) {
  function tokenBase (line 15) | function tokenBase(stream, state) {
  function tokenLiteral (line 62) | function tokenLiteral(quote) {
  function pushContext (line 76) | function pushContext(state, type, col) {
  function popContext (line 79) | function popContext(state) {

FILE: vendor/assets/javascripts/codemirror/mode/stex/stex.js
  function pushCommand (line 8) | function pushCommand(state, command) {
  function peekCommand (line 12) | function peekCommand(state) {
  function popCommand (line 19) | function popCommand(state) {
  function applyMostPowerful (line 26) | function applyMostPowerful(state) {
  function addPluginPattern (line 37) | function addPluginPattern(pluginName, cmdStyle, brackets, styles) {
  function setState (line 80) | function setState(state, f) {
  function normal (line 84) | function normal(source, state) {
  function inCComment (line 127) | function inCComment(source, state) {
  function beginParams (line 133) | function beginParams(source, state) {

FILE: vendor/assets/javascripts/codemirror/mode/tiddlywiki/tiddlywiki.js
  function kw (line 22) | function kw(type) {
  function kw (line 32) | function kw(type) {
  function chain (line 66) | function chain(stream, state, f) {
  function nextUntilUnescaped (line 72) | function nextUntilUnescaped(stream, end) {
  function ret (line 86) | function ret(tp, style, cont) {
  function jsTokenBase (line 92) | function jsTokenBase(stream, state) {
  function twTokenString (line 219) | function twTokenString(quote) {
  function twTokenComment (line 227) | function twTokenComment(stream, state) {
  function twTokenStrong (line 241) | function twTokenStrong(stream, state) {
  function twTokenCode (line 255) | function twTokenCode(stream, state) {
  function twTokenEm (line 277) | function twTokenEm(stream, state) {
  function twTokenUnderline (line 291) | function twTokenUnderline(stream, state) {
  function twTokenStrike (line 306) | function twTokenStrike(stream, state) {
  function twTokenMacro (line 321) | function twTokenMacro(stream, state) {

FILE: vendor/assets/javascripts/codemirror/mode/velocity/velocity.js
  function parseWords (line 2) | function parseWords(str) {
  function chain (line 17) | function chain(stream, state, f) {
  function tokenBase (line 21) | function tokenBase(stream, state) {
  function tokenString (line 87) | function tokenString(quote) {
  function tokenComment (line 102) | function tokenComment(stream, state) {
  function tokenUnparsed (line 114) | function tokenUnparsed(stream, state) {

FILE: vendor/assets/javascripts/codemirror/mode/xml/xml.js
  function inText (line 14) | function inText(stream, state) {
  function inTag (line 60) | function inTag(stream, state) {
  function inAttribute (line 81) | function inAttribute(quote) {
  function inBlock (line 93) | function inBlock(style, terminator) {
  function pass (line 107) | function pass() {
  function cont (line 110) | function cont() {
  function pushContext (line 115) | function pushContext(tagName, startOfLine) {
  function popContext (line 125) | function popContext() {
  function element (line 129) | function element(type) {
  function endtag (line 148) | function endtag(startOfLine) {
  function endclosetag (line 157) | function endclosetag(err) {
  function attributes (line 166) | function attributes(type) {
  function attvalue (line 172) | function attvalue(type) {
  function attvaluemaybe (line 177) | function attvaluemaybe(type) {

FILE: vendor/assets/javascripts/codemirror/mode/xmlpure/xmlpure.js
  function chain (line 38) | function chain(stream, state, parser) {
  function inBlock (line 44) | function inBlock(style, terminator, nextTokenize) {
  function pushContext (line 60) | function pushContext(state, tagName) {
  function popContext (line 74) | function popContext(state) {
  function isTokenSeparated (line 89) | function isTokenSeparated(stream) {
  function parseDocument (line 103) | function parseDocument(stream, state) {
  function parseElementTagName (line 135) | function parseElementTagName(stream, state) {
  function parseElement (line 166) | function parseElement(stream, state) {
  function parseAttribute (line 197) | function parseAttribute(stream, state) {
  function parseAttributeValue (line 214) | function parseAttributeValue(stream, state) {
  function parseElementBlock (line 269) | function parseElementBlock(stream, state) {
  function parseText (line 305) | function parseText(stream, state) {
  function parseProcessingInstructionStartTag (line 324) | function parseProcessingInstructionStartTag(stream, state) {
  function parseProcessingInstructionBody (line 350) | function parseProcessingInstructionBody(stream, state) {
  function parseDeclarationVersion (line 373) | function parseDeclarationVersion(stream, state) {
  function parseDeclarationEncoding (line 383) | function parseDeclarationEncoding(stream, state) {
  function parseDeclarationStandalone (line 392) | function parseDeclarationStandalone(stream, state) {
  function parseDeclarationEndTag (line 401) | function parseDeclarationEndTag(stream, state) {

FILE: vendor/assets/javascripts/mobile/jquery_mobile.js
  function b (line 11) | function b(a){var b=a.charAt(0).toUpperCase()+a.substr(1),a=(a+" "+c.joi...
  function f (line 15) | function f(a){for(;a&&typeof a.originalEvent!=="undefined";)a=a.original...
  function c (line 15) | function c(b){for(var c={},f,d;b;){f=a.data(b,n);for(d in f)if(f[d])c[d]...
  function h (line 15) | function h(){v&&(clearTimeout(v),v=0);v=setTimeout(function(){E=v=0;u.le...
  function g (line 15) | function g(b,c,r){var e,h;if(!(h=r&&r[b])){if(r=!r)a:{for(r=c.target;r;)...
  function i (line 16) | function i(b){var c=a.data(b.target,A);if(!D&&(!E||E!==c))if(c=g("v"+b.t...
  function k (line 17) | function k(b){var d=f(b).touches,e;if(d&&d.length===1&&(e=b.target,d=c(e...
  function l (line 17) | function l(a){y||(w||g("vmousecancel",a,c(a.target)),w=true,h())}
  function o (line 17) | function o(b){if(!y){var d=f(b).touches[0],r=w,e=a.vmouse.moveDistanceTh...
  function m (line 18) | function m(a){if(!y){y=true;var b=c(a.target),d;g("vmouseup",a,b);if(!w&...
  function p (line 18) | function p(b){var b=a.data(b,n),c;if(b)for(c in b)if(b[c])return true;re...
  function j (line 18) | function j(){}
  function q (line 18) | function q(b){var c=b.substr(1);return{setup:function(){p(this)||a.data(...
  function d (line 22) | function d(b,c,d){var f=d.type;d.type=c;a.event.handle.call(b,d);d.type=f}
  function b (line 22) | function b(a,
  function e (line 23) | function e(){clearTimeout(q)}
  function h (line 23) | function h(){e();c.unbind("vclick",g).unbind("vmouseup",e).unbind("vmous...
  function g (line 23) | function g(a){h();j==a.target&&d(b,"tap",a)}
  function f (line 24) | function f(b){if(m){var c=b.originalEvent.touches?b.originalEvent.touche...
  function c (line 26) | function c(){var a=f();a!==e&&(e=a,d.trigger("orientationchange"))}
  function d (line 29) | function d(a){a=a||location.href;return"#"+a.replace(/^[^#]*#?(.*)$/,"$1")}
  function h (line 29) | function h(){var b=d(),c=n(p);if(b!==p)q(p=b,c),a(e).trigger(f);else if(...
  function b (line 38) | function b(a){var b=a.find(".ui-title:eq(0)");b.length?b.focus():a.focus()}
  function d (line 38) | function d(b){q&&(!q.closest(".ui-page-active").length||b)&&q.removeClas...
  function f (line 38) | function f(){z=false;A.length>0&&a.mobile.changePage.apply(null,A.pop())}
  function c (line 38) | function c(c,d,f,e){var g=a.mobile.urlHistory.getActive(),j=a.support.to...
  function h (line 40) | function h(){var b=a.event.special.orientationchange.orientation()==="po...
  function g (line 40) | function g(){(!a.support.touchOverflow||!a.mobile.touchOverflowEnabled)&...
  function i (line 40) | function i(b,c){c&&b.attr("data-"+a.mobile.ns+"role",c);b.page()}
  function k (line 40) | function k(a){for(;a;){if(typeof a.nodeName==="string"&&a.nodeName.toLow...
  function l (line 41) | function l(b){var b=a(b).closest(".ui-page").jqmData("url"),c=t.hrefNoHa...
  function e (line 71) | function e(b,d,f,c){var e=new a.Deferred,g=d?" reverse":"",i="ui-mobile-...
  function b (line 149) | function b(b){for(var c;b;){if((c=typeof b.className==="string"&&b.class...
  function b (line 155) | function b(a){a.removeClass("ui-btn-corner-all ui-shadow").eq(0).addClas...
  function b (line 158) | function b(){!i&&g==="overlay"&&(h||a.mobile.fixedToolbars.hide(true),
  function d (line 159) | function d(a){var b=0,c,d;if(a){d=document.body;c=a.offsetParent;for(b=a...
  function f (line 159) | function f(b){var c=a(window).scrollTop(),e=d(b[0]),f=b.css("top")=="aut...
  function b (line 169) | function b(){var b=a("meta[name='viewport']");b.length?b.attr("content",...

FILE: vendor/assets/javascripts/modernizr.js
  function setCss (line 155) | function setCss( str ) {
  function setCssAll (line 159) | function setCssAll( str1, str2 ) {
  function is (line 163) | function is( obj, type ) {
  function contains (line 167) | function contains( str, substr ) {
  function testDOMProps (line 172) | function testDOMProps( props, obj, elem ) {
  function webforms (line 248) | function webforms() {
  function addStyleSheet (line 343) | function addStyleSheet(ownerDocument, cssText) {
  function getElements (line 351) | function getElements() {
  function shivMethods (line 356) | function shivMethods(ownerDocument) {
  function shivDocument (line 378) | function shivDocument(ownerDocument) {

FILE: vendor/assets/javascripts/tipsy/jquery.tipsy.js
  function maybeCall (line 8) | function maybeCall(thing, ctx) {
  function Tipsy (line 12) | function Tipsy(element, options) {
  function get (line 136) | function get(ele) {
  function enter (line 145) | function enter() {
  function leave (line 156) | function leave() {

FILE: vendor/plugins/exception_notification/lib/exception_notifier.rb
  class ExceptionNotifier (line 4) | class ExceptionNotifier
    method default_ignore_exceptions (line 5) | def self.default_ignore_exceptions
    method initialize (line 13) | def initialize(app, options = {})
    method call (line 18) | def call(env)

FILE: vendor/plugins/exception_notification/lib/exception_notifier/notifier.rb
  class ExceptionNotifier (line 4) | class ExceptionNotifier
    class Notifier (line 5) | class Notifier < ActionMailer::Base
      method default_sender_address (line 10) | def default_sender_address
      method default_exception_recipients (line 14) | def default_exception_recipients
      method default_email_prefix (line 18) | def default_email_prefix
      method default_sections (line 22) | def default_sections
      method default_options (line 26) | def default_options
      class MissingController (line 34) | class MissingController
        method method_missing (line 35) | def method_missing(*args, &block)
      method exception_notification (line 39) | def exception_notification(env, exception)
      method clean_backtrace (line 63) | def clean_backtrace(exception)
      method inspect_object (line 71) | def inspect_object(object)

FILE: vendor/plugins/gravatar/lib/gravatar.rb
  type GravatarHelper (line 4) | module GravatarHelper
    type PublicMethods (line 38) | module PublicMethods
      function gravatar_for (line 43) | def gravatar_for(user, options={})
      function gravatar (line 48) | def gravatar(email, options={})
      function gravatar_api_url (line 58) | def gravatar_api_url(hash, ssl=false)
      function gravatar_url (line 67) | def gravatar_url(email, options={})
Condensed preview — 2419 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (7,038K chars).
[
  {
    "path": ".gitignore",
    "chars": 484,
    "preview": "*~\n.DS_Store\n*.swp\n*.bak\n*.orig\ncoverage\npublic/stylesheets/compiled/\nconfig/shapado.yml\nconfig/payments.yml\ndata/*.dat\n"
  },
  {
    "path": ".gitmodules",
    "chars": 0,
    "preview": ""
  },
  {
    "path": ".mailmap",
    "chars": 220,
    "preview": "Jorge H. Cuadrado <kuadrosxx@gmail.com>\nJorge Cuadrado <kuadrosxx@gmail.com>\nCarlos <carlos@carlos-desktop.(none)>\nCarlo"
  },
  {
    "path": ".rspec",
    "chars": 9,
    "preview": "--colour\n"
  },
  {
    "path": "AUTHORS",
    "chars": 104,
    "preview": "\nContributors\n------------\n\nDavid Cuadrado\nDiego Mazzocchi\nJorge Cuadrado\nPatrick Aljord\nVictor Cedeno\n\n"
  },
  {
    "path": "COPYING",
    "chars": 34521,
    "preview": "                    GNU AFFERO GENERAL PUBLIC LICENSE\n                       Version 3, 19 November 2007\n\n Copyright (C)"
  },
  {
    "path": "Gemfile",
    "chars": 2977,
    "preview": "source 'http://rubygems.org'\n\ngem 'rails', '3.2.6'\n\nif RUBY_PLATFORM !~ /mswin|mingw/\n  gem 'rdiscount', :git => 'git://"
  },
  {
    "path": "INSTALL_ON_PRODUCTION",
    "chars": 1683,
    "preview": "== SERVER SIDE\n\n1. add a user with sudo permissions\n    sudo adduser deploy\n\n2. edit sudo settings\n    $ sudo visudo\n   "
  },
  {
    "path": "README",
    "chars": 1810,
    "preview": "== Dependencies\n\n- git >= 1.5\n- ruby >= 1.9.2\n- rubygems >= 1.3.7\n- mongodb >= 1.7\n- ruby on rails 3\n\n== Install Depende"
  },
  {
    "path": "Rakefile",
    "chars": 267,
    "preview": "# Add your own tasks in files placed in lib/tasks ending in .rake,\n# for example lib/tasks/capistrano.rake, and they wil"
  },
  {
    "path": "Shapado.prj",
    "chars": 596,
    "preview": "<?xml version=\"1.0\" encoding=\"ASCII\"?>\n<!DOCTYPE PRJ SYSTEM \"Shapado.dtd\">\n<PRJ>\n  <Project_Information>\n    <Use_Relati"
  },
  {
    "path": "Shapado.ubuntu.fra.pui",
    "chars": 559,
    "preview": "<?xml version=\"1.0\" encoding=\"ASCII\"?>\n<!DOCTYPE PRJ SYSTEM \"Shapado.ubuntu.fra.dtd\">\n<PRJ>\n  <Project_Information>\n    "
  },
  {
    "path": "UPGRADE",
    "chars": 44,
    "preview": "run 'rake fixall' to upgrade your database\n\n"
  },
  {
    "path": "VERSION",
    "chars": 6,
    "preview": "4.1.0\n"
  },
  {
    "path": "app/assets/javascripts/app/initializers/assets.js",
    "chars": 862,
    "preview": "/*THIS FILE IS AUTO-GENERATED FOR DEV, DO NOT MODIFY IT. MODIFY config/assets.yml INSTEAD*/\n jsassets = {\"modernizrdev\":"
  },
  {
    "path": "app/assets/javascripts/app/initializers/init_dev.js",
    "chars": 343,
    "preview": "// any initializing code from init_modernizer.js should go here for dev\n\n$(document).ready(function() {\n  Jqmath.initial"
  },
  {
    "path": "app/assets/javascripts/app/initializers/init_modernizr.js",
    "chars": 1898,
    "preview": "//needed for IE\nfix_html5_on_ie();\nModernizr.load([{\n  load: '//ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"
  },
  {
    "path": "app/assets/javascripts/app/initializers/retag.js",
    "chars": 2778,
    "preview": "$(document).ready(function() {\n  $('.retag-link').live('click',function(){\n    var link = $(this);\n    link.parent('.ret"
  },
  {
    "path": "app/assets/javascripts/app/initializers/search.js",
    "chars": 2803,
    "preview": "(function($){\n  $.fn.searcher = function(options) {\n    var defaults = { timeout: 500,\n      threshold: 100,\n      minLe"
  },
  {
    "path": "app/assets/javascripts/app/initializers/shapado_toolbar.js",
    "chars": 1974,
    "preview": "(function($){\n  $.fn.shapadoToolbar = function(options) {\n    var defaults = {\n      formContainer: \".panel-forms\",\n    "
  },
  {
    "path": "app/assets/javascripts/app/initializers/single/question.js",
    "chars": 92,
    "preview": "$(document).ready(function() {\n//   FIXME: why is it here?\n//   Questions.initialize();\n});\n"
  },
  {
    "path": "app/assets/javascripts/app/main.js",
    "chars": 102,
    "preview": "\n$(document).ready(function() {\n  var $body = $(document.body);\n  Loader.initialize($body, true);\n});\n"
  },
  {
    "path": "app/assets/javascripts/app/modules/activities.js",
    "chars": 520,
    "preview": "Activities = function(){\n  var self = this;\n\n  function initialize() {\n  }\n\n  function createOnIndex(data) {\n    Utils.l"
  },
  {
    "path": "app/assets/javascripts/app/modules/answers.js",
    "chars": 1495,
    "preview": "Answers = function(){\n  var self = this;\n\n  function initialize($body) {\n    if($body.hasClass(\"edit\")) {\n      Editor.s"
  },
  {
    "path": "app/assets/javascripts/app/modules/app_config.js",
    "chars": 390,
    "preview": "AppConfig = function(){\n  var self = this;\n\n  function initialize() {\n    var config = $(\"#appconfig\");\n    if(config.le"
  },
  {
    "path": "app/assets/javascripts/app/modules/authentication.js",
    "chars": 2183,
    "preview": "Auth = function() {\n  var self = this;\n\n  function initialize() {\n    $('.auth-provider').live(\"click\", function(e){\n   "
  },
  {
    "path": "app/assets/javascripts/app/modules/comments.js",
    "chars": 4164,
    "preview": "Comments = function() {\n  var self = this;\n\n  function initializeOnQuestion(data) {\n    $('.comment-votes form.comment-f"
  },
  {
    "path": "app/assets/javascripts/app/modules/editor.js",
    "chars": 5393,
    "preview": "Editor = function() {\n  var self = this;\n\n  function initialize() {\n    setupEditor();\n    setupWysiwyg();\n    $(\".markd"
  },
  {
    "path": "app/assets/javascripts/app/modules/effects.js",
    "chars": 285,
    "preview": "Effects = function(){\n  var self =this;\n\n  function initialize() {\n  }\n\n  function fade(object) {\n    if(typeof object !"
  },
  {
    "path": "app/assets/javascripts/app/modules/form.js",
    "chars": 423,
    "preview": "Form = function() {\n  var self = this;\n\n  function initialize() {\n    if(!Modernizr.inputtypes.color) {\n      $(\"input[t"
  },
  {
    "path": "app/assets/javascripts/app/modules/geo.js",
    "chars": 663,
    "preview": "Geo = function() {\n  var self = this;\n\n  function initialize() {\n    $(document.body).delegate('#question_title', 'click"
  },
  {
    "path": "app/assets/javascripts/app/modules/groups.js",
    "chars": 1828,
    "preview": "Groups = function() {\n  var self = this;\n\n  function initialize($body) {\n    if($body.hasClass(\"index\")) {\n      initial"
  },
  {
    "path": "app/assets/javascripts/app/modules/invitations.js",
    "chars": 124,
    "preview": "Invitations = function() {\n  var self = this;\n\n  function initialize() {\n  }\n\n  return {\n    initialize:initialize\n  }\n}"
  },
  {
    "path": "app/assets/javascripts/app/modules/jqmath.js",
    "chars": 372,
    "preview": "Jqmath = function() {\n  var self = this;\n\n  function initialize() {\n    Modernizr.load([{\n      test: $('meta[data-jqmat"
  },
  {
    "path": "app/assets/javascripts/app/modules/layout_editor.js",
    "chars": 832,
    "preview": "LayoutEditor = function() {\n  var self = this, $sortable;\n\n  function initialize() {\n    if(window.location.search.match"
  },
  {
    "path": "app/assets/javascripts/app/modules/loader.js",
    "chars": 2074,
    "preview": "Loader = function() {\n  var self = this;\n  //only for ready\n  function initialize($body, refreshed) {\n    Updater.initia"
  },
  {
    "path": "app/assets/javascripts/app/modules/local_storage.js",
    "chars": 2681,
    "preview": "LocalStorage = function() {\n  var self = this;\n\n  function initialize() {\n    if(Modernizr.localstorage) {\n      loadTex"
  },
  {
    "path": "app/assets/javascripts/app/modules/members.js",
    "chars": 462,
    "preview": "Members = function() {\n  var self = this;\n\n  function initialize(data) {\n    //TODO use data-foo\n    $(\"#filter_members\""
  },
  {
    "path": "app/assets/javascripts/app/modules/messages.js",
    "chars": 750,
    "preview": "Messages = function() {\n  var self = this;\n\n  function initialize() {\n    $(\"a#hide_announcement\").click(function() {\n  "
  },
  {
    "path": "app/assets/javascripts/app/modules/networks.js",
    "chars": 2754,
    "preview": "Networks = function() {\n  var self = this;\n\n  function initialize(form) {\n    form = form || $('form')\n    form.find(\".n"
  },
  {
    "path": "app/assets/javascripts/app/modules/notifier.js",
    "chars": 1039,
    "preview": "Notifier = function() {\n  var self = this;\n\n  function initialize() {\n    if(isValid()) {\n      updateCheckbox();\n\n     "
  },
  {
    "path": "app/assets/javascripts/app/modules/pages.js",
    "chars": 271,
    "preview": "Pages = function() {\n  var self = this;\n\n  function initialize($body) {\n    if($body.hasClass(\"new\") || $body.hasClass(\""
  },
  {
    "path": "app/assets/javascripts/app/modules/plans.js",
    "chars": 155,
    "preview": "var Plans = {\n  initialize: function() {\n    $('.users-qty input').change(function(){\n        $('.total_private').html('"
  },
  {
    "path": "app/assets/javascripts/app/modules/questions.js",
    "chars": 7242,
    "preview": "Questions = function() {\n  var self = this;\n\n  function initialize($body) {\n    if($body.hasClass(\"show\")) {\n      initi"
  },
  {
    "path": "app/assets/javascripts/app/modules/rewards.js",
    "chars": 538,
    "preview": "Rewards = function() {\n  var self = this;\n\n  function initialize() {\n    $(\"#reward_reputation\" ).hide();\n    if(Ui.offl"
  },
  {
    "path": "app/assets/javascripts/app/modules/searches.js",
    "chars": 263,
    "preview": "Searches = function() {\n  var self = this;\n\n  function initialize($body) {\n    $(\".advanced-search\").click(function(){\n "
  },
  {
    "path": "app/assets/javascripts/app/modules/shapado_ui.js",
    "chars": 1921,
    "preview": "ShapadoUI = function() {\n  var self = this;\n\n  function newQuestion(data) {\n    if(isOnQuestionIndex()){\n      Questions"
  },
  {
    "path": "app/assets/javascripts/app/modules/tags.js",
    "chars": 737,
    "preview": "Tags = function() {\n  var self = this;\n\n  function initialize($body) {\n    if($body.hasClass(\"index\")) {\n      Tags.init"
  },
  {
    "path": "app/assets/javascripts/app/modules/themes.js",
    "chars": 1730,
    "preview": "Themes = function() {\n  var self = this;\n  function initialize($body) {\n    if($body.hasClass(\"show\")) {\n      var messa"
  },
  {
    "path": "app/assets/javascripts/app/modules/ui.js",
    "chars": 7678,
    "preview": "Ui = function() {\n  var self = this;\n\n  function initialize() {\n    initDropdowns();\n    initQuickQuestion();\n    Auth.d"
  },
  {
    "path": "app/assets/javascripts/app/modules/updater.js",
    "chars": 3378,
    "preview": "Updater = function() {\n  var self = this;\n\n  function initialize($body) {\n    var $main_content_wrap = $(\"#main-content-"
  },
  {
    "path": "app/assets/javascripts/app/modules/users.js",
    "chars": 1265,
    "preview": "Users = function() {\n  var self = this;\n\n  function initialize($body) {\n    if($body.hasClass(\"index\")) {\n      Users.in"
  },
  {
    "path": "app/assets/javascripts/app/modules/utils.js",
    "chars": 693,
    "preview": "Utils = function() {\n  var self=this;\n  function urlVars() {\n    var vars = {}, hash;\n    var hashes = {}\n    if(window."
  },
  {
    "path": "app/assets/javascripts/app/modules/votes.js",
    "chars": 2589,
    "preview": "Votes = function() {\n  var self=this;\n\n  function initialize() {\n  }\n\n  function initializeOnQuestions() {\n    $(\".quick"
  },
  {
    "path": "app/assets/javascripts/app/modules/websocket.js",
    "chars": 2184,
    "preview": "ShapadoSocket = function() {\n  var self=this, $config;\n  function initialize() {\n    WEB_SOCKET_SWF_LOCATION = \"/javascr"
  },
  {
    "path": "app/assets/javascripts/app/modules/widgets.js",
    "chars": 1843,
    "preview": "Widgets = function() {\n  var self=this;\n\n  function initialize(data) {\n    Networks.initialize();\n    var widget = $('.w"
  },
  {
    "path": "app/assets/javascripts/application-init.js",
    "chars": 96,
    "preview": "function initialize_all() {\n};\n\n// $(document).ready(function() {\n//   initialize_all();\n// });\n"
  },
  {
    "path": "app/assets/javascripts/application.js",
    "chars": 1906,
    "preview": "//= require jquery-ui\n//= require jquery_ujs\n\n//= require app/modules/effects.js\n//= require vendor/chosen.jquery.min.js"
  },
  {
    "path": "app/assets/javascripts/codemirror.js",
    "chars": 219,
    "preview": "//= require codemirror/codemirror.js\n//= require codemirror/mode/javascript/javascript.js\n//= require codemirror/mode/cs"
  },
  {
    "path": "app/assets/javascripts/facebook_app/facebox/facebox.css",
    "chars": 1159,
    "preview": "#facebox {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 100;\n  text-align: left;\n}\n\n\n#facebox .popup{\n  positio"
  },
  {
    "path": "app/assets/javascripts/facebook_app/facebox/facebox.js",
    "chars": 9256,
    "preview": "/*\n * Facebox (for jQuery)\n * version: 1.2 (05/05/2008)\n * @requires jQuery v1.2 or later\n *\n * Examples at http://famsp"
  },
  {
    "path": "app/assets/javascripts/facebook_app/init.js",
    "chars": 3333,
    "preview": "var FbQuestions = {\n  initialize: function() {\n    if($(\".unauthenticated\").length > 0) {\n      $(\"input, textarea\").foc"
  },
  {
    "path": "app/assets/javascripts/i18n/af.js",
    "chars": 177,
    "preview": "/** Messages for Afrikaans (Afrikaans)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Naudefj\n */\n\nvar I18"
  },
  {
    "path": "app/assets/javascripts/i18n/be-Tarask.js",
    "chars": 250,
    "preview": "/** Messages for Belarusian (Taraškievica orthography) (‪беларуская (тарашкевіца)‬)\n *  Exported from translatewiki.net\n"
  },
  {
    "path": "app/assets/javascripts/i18n/br.js",
    "chars": 214,
    "preview": "/** Messages for Breton (brezhoneg)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Siebrand\n */\n\nvar I18n "
  },
  {
    "path": "app/assets/javascripts/i18n/ca.js",
    "chars": 214,
    "preview": "/** Messages for Catalan (català)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Gemmaa\n *  - Papapep\n */\n"
  },
  {
    "path": "app/assets/javascripts/i18n/da.js",
    "chars": 172,
    "preview": "/** Messages for Danish (dansk)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Emilkris33\n */\n\nvar I18n = "
  },
  {
    "path": "app/assets/javascripts/i18n/de.js",
    "chars": 217,
    "preview": "/** Messages for German (Deutsch)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Kghbln\n *  - Siebrand\n */"
  },
  {
    "path": "app/assets/javascripts/i18n/el.js",
    "chars": 177,
    "preview": "/** Messages for Greek (Ελληνικά)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Siebrand\n */\n\nvar I18n = "
  },
  {
    "path": "app/assets/javascripts/i18n/en.js",
    "chars": 172,
    "preview": "/** Messages for English (English)\n *  Exported from translatewiki.net\n *\n\n */\n\nvar I18n = {\n\ton_leave_page: \"You may lo"
  },
  {
    "path": "app/assets/javascripts/i18n/eo.js",
    "chars": 180,
    "preview": "/** Messages for Esperanto (Esperanto)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Darkweasel\n */\n\nvar "
  },
  {
    "path": "app/assets/javascripts/i18n/es-419.js",
    "chars": 205,
    "preview": "/** Messages for Latin American Spanish (espanol de America Latina)\n *  Exported from translatewiki.net\n *\n * Translator"
  },
  {
    "path": "app/assets/javascripts/i18n/es.js",
    "chars": 196,
    "preview": "/** Messages for Spanish (español)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Patcito\n */\n\nvar I18n = "
  },
  {
    "path": "app/assets/javascripts/i18n/fa.js",
    "chars": 202,
    "preview": "/** Messages for Persian (فارسی)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - MindHammerGames\n */\n\nvar I"
  },
  {
    "path": "app/assets/javascripts/i18n/fi.js",
    "chars": 203,
    "preview": "/** Messages for Finnish (suomi)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Centerlink\n */\n\nvar I18n ="
  },
  {
    "path": "app/assets/javascripts/i18n/fr.js",
    "chars": 248,
    "preview": "/** Messages for French (français)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Jean-Frédéric\n *  - Sieb"
  },
  {
    "path": "app/assets/javascripts/i18n/fur.js",
    "chars": 183,
    "preview": "/** Messages for Friulian (furlan)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Klenje\n */\n\nvar I18n = {"
  },
  {
    "path": "app/assets/javascripts/i18n/gl.js",
    "chars": 217,
    "preview": "/** Messages for Galician (galego)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Siebrand\n *  - Toliño\n *"
  },
  {
    "path": "app/assets/javascripts/i18n/he.js",
    "chars": 173,
    "preview": "/** Messages for Hebrew (עברית)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - YaronSh\n */\n\nvar I18n = {\n\t"
  },
  {
    "path": "app/assets/javascripts/i18n/hu.js",
    "chars": 216,
    "preview": "/** Messages for Hungarian (magyar)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Dani\n *  - Dj\n */\n\nvar "
  },
  {
    "path": "app/assets/javascripts/i18n/ia.js",
    "chars": 224,
    "preview": "/** Messages for Interlingua (interlingua)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - McDutchie\n */\n\nv"
  },
  {
    "path": "app/assets/javascripts/i18n/id.js",
    "chars": 192,
    "preview": "/** Messages for Indonesian (Bahasa Indonesia)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Farras\n */\n\n"
  },
  {
    "path": "app/assets/javascripts/i18n/ig.js",
    "chars": 163,
    "preview": "/** Messages for Igbo (Igbo)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Ukabia\n */\n\nvar I18n = {\n\ton_l"
  },
  {
    "path": "app/assets/javascripts/i18n/it.js",
    "chars": 231,
    "preview": "/** Messages for Italian (italiano)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Danmaz74\n *  - Giallu\n "
  },
  {
    "path": "app/assets/javascripts/i18n/ja.js",
    "chars": 158,
    "preview": "/** Messages for Japanese (日本語)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Shirayuki\n */\n\nvar I18n = {"
  },
  {
    "path": "app/assets/javascripts/i18n/ksh.js",
    "chars": 186,
    "preview": "/** Messages for Colognian (Ripoarisch)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Purodha\n */\n\nvar I1"
  },
  {
    "path": "app/assets/javascripts/i18n/lb.js",
    "chars": 197,
    "preview": "/** Messages for Luxembourgish (Lëtzebuergesch)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Robby\n */\n\n"
  },
  {
    "path": "app/assets/javascripts/i18n/mk.js",
    "chars": 228,
    "preview": "/** Messages for Macedonian (македонски)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Bjankuloski06\n *  "
  },
  {
    "path": "app/assets/javascripts/i18n/ms.js",
    "chars": 226,
    "preview": "/** Messages for Malay (Bahasa Melayu)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Anakmalaysia\n */\n\nva"
  },
  {
    "path": "app/assets/javascripts/i18n/nb.js",
    "chars": 192,
    "preview": "/** Messages for Norwegian Bokmål (‪norsk (bokmål)‬)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Siebra"
  },
  {
    "path": "app/assets/javascripts/i18n/nl.js",
    "chars": 213,
    "preview": "/** Messages for Dutch (Nederlands)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Siebrand\n */\n\nvar I18n "
  },
  {
    "path": "app/assets/javascripts/i18n/pl.js",
    "chars": 216,
    "preview": "/** Messages for Polish (polski)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Grzechooo\n *  - Siebrand\n "
  },
  {
    "path": "app/assets/javascripts/i18n/pms.js",
    "chars": 179,
    "preview": "/** Messages for Piedmontese (Piemontèis)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Dragonòt\n */\n\nvar"
  },
  {
    "path": "app/assets/javascripts/i18n/pt-BR.js",
    "chars": 204,
    "preview": "/** Messages for Brazilian Portuguese (português do Brasil)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  -"
  },
  {
    "path": "app/assets/javascripts/i18n/pt-PT.js",
    "chars": 189,
    "preview": "/** Messages for Portuguese (português)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Hamilton Abreu\n */\n"
  },
  {
    "path": "app/assets/javascripts/i18n/qqq.js",
    "chars": 194,
    "preview": "/** Messages for Message documentation (Message documentation)\n *  Exported from translatewiki.net\n *\n * Translators:\n *"
  },
  {
    "path": "app/assets/javascripts/i18n/ru.js",
    "chars": 219,
    "preview": "/** Messages for Russian (русский)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Adata80\n *  - Siebrand\n "
  },
  {
    "path": "app/assets/javascripts/i18n/shi.js",
    "chars": 197,
    "preview": "/** Messages for Tachelhit (Tašlḥiyt/ⵜⴰⵛⵍⵃⵉⵜ)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Dalinanir\n */"
  },
  {
    "path": "app/assets/javascripts/i18n/si.js",
    "chars": 175,
    "preview": "/** Messages for Sinhala (සිංහල)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Singhalawap\n */\n\nvar I18n "
  },
  {
    "path": "app/assets/javascripts/i18n/sr-Latn.js",
    "chars": 231,
    "preview": "/** Messages for Serbian (Latin script) (‪srpski (latinica)‬)\n *  Exported from translatewiki.net\n *\n * Translators:\n * "
  },
  {
    "path": "app/assets/javascripts/i18n/sr.js",
    "chars": 234,
    "preview": "/** Messages for Serbian (Cyrillic script) (‪српски (ћирилица)‬)\n *  Exported from translatewiki.net\n *\n * Translators:\n"
  },
  {
    "path": "app/assets/javascripts/i18n/sv.js",
    "chars": 175,
    "preview": "/** Messages for Swedish (svenska)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Tobulos1\n */\n\nvar I18n ="
  },
  {
    "path": "app/assets/javascripts/i18n/te.js",
    "chars": 171,
    "preview": "/** Messages for Telugu (తెలుగు)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Veeven\n */\n\nvar I18n = {\n\t"
  },
  {
    "path": "app/assets/javascripts/i18n/tl.js",
    "chars": 206,
    "preview": "/** Messages for Tagalog (Tagalog)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - AnakngAraw\n */\n\nvar I18n"
  },
  {
    "path": "app/assets/javascripts/i18n/uk.js",
    "chars": 176,
    "preview": "/** Messages for Ukrainian (українська)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Тест\n */\n\nvar I18n "
  },
  {
    "path": "app/assets/javascripts/i18n/zh-CN.js",
    "chars": 202,
    "preview": "/** Messages for Simplified Chinese (‪中文(简体)‬)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Hydra\n *  - "
  },
  {
    "path": "app/assets/javascripts/i18n/zh-HANT.js",
    "chars": 168,
    "preview": "/** Messages for Traditional Chinese (‪中文(繁體)‬)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Frankou\n */"
  },
  {
    "path": "app/assets/javascripts/i18n/zh-TW.js",
    "chars": 168,
    "preview": "/** Messages for Traditional Chinese (‪中文(繁體)‬)\n *  Exported from translatewiki.net\n *\n * Translators:\n *  - Frankou\n */"
  },
  {
    "path": "app/assets/javascripts/magent_web.js",
    "chars": 89,
    "preview": "$(document).ready(function() {\n  $.mobile.page.prototype.options.addBackBtn = true;\n});\n\n"
  },
  {
    "path": "app/assets/javascripts/mobile.js",
    "chars": 556,
    "preview": "$(document).ready(function() {\n  $.mobile.page.prototype.options.addBackBtn = true;\n\n  $('div[data-role*=\"page\"]').live("
  },
  {
    "path": "app/assets/javascripts/payments/application.js",
    "chars": 29,
    "preview": "//= require payments/payments"
  },
  {
    "path": "app/assets/javascripts/payments/payments.js",
    "chars": 1265,
    "preview": "var Payments = {\n  initialize: function() {\n    var form = $(\"#payment-form\");\n    Stripe.setPublishableKey(form.attr(\"d"
  },
  {
    "path": "app/assets/javascripts/shapadocom.js",
    "chars": 40,
    "preview": "//= require bootstrap/bootstrap.min.js\n\n"
  },
  {
    "path": "app/assets/javascripts/vendor/ajax-chosen.js",
    "chars": 5961,
    "preview": "(function() {\n  var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };\n  (function($) {"
  },
  {
    "path": "app/assets/javascripts/vendor/highlight/prettify.js",
    "chars": 11978,
    "preview": "function H(){var x=navigator&&navigator.userAgent&&/\\bMSIE 6\\./.test(navigator.userAgent);H=function(){return x};return "
  },
  {
    "path": "app/assets/javascripts/vendor/jHtmlArea.js",
    "chars": 15492,
    "preview": "/*\n* jHtmlArea 0.7.0 - WYSIWYG Html Editor jQuery Plugin\n* Copyright (c) 2009 Chris Pietschmann\n* http://jhtmlarea.code"
  },
  {
    "path": "app/assets/javascripts/vendor/jquery-1.6.4.js",
    "chars": 91668,
    "preview": "/*! jQuery v1.6.4 http://jquery.com/ | http://jquery.org/license */\n(function(a,b){function cu(a){return f.isWindow(a)?a"
  },
  {
    "path": "app/assets/javascripts/vendor/jquery.autovideo.js",
    "chars": 6936,
    "preview": "(function($) {\n  $.fn.autoVideo = function(){\n      this.each(function(){\n          var isInCode = $(this).parents('code"
  },
  {
    "path": "app/assets/javascripts/vendor/jquery.cookie.js",
    "chars": 3713,
    "preview": "/*jslint browser: true */ /*global jQuery: true */\n\n/**\n * jQuery Cookie plugin\n *\n * Copyright (c) 2010 Klaus Hartl (st"
  },
  {
    "path": "app/assets/javascripts/vendor/jquery.droppy.js",
    "chars": 2447,
    "preview": "/*\n * Droppy 0.1.2\n * (c) 2008 Jason Frame (jason@onehackoranother.com)\n */\n(function($) {\n\n  $.fn.droppy = function(opt"
  },
  {
    "path": "app/assets/javascripts/vendor/jquery.notifyBar.js",
    "chars": 1879,
    "preview": "/*\n*  Notify Bar - jQuery plugin\n*\n*  Copyright (c) 2009 Dmitri Smirnov\n*\n*  Licensed under the MIT license:\n*  http://w"
  },
  {
    "path": "app/assets/javascripts/vendor/jquery.pjax.js",
    "chars": 7429,
    "preview": "// jquery.pjax.js\n// copyright chris wanstrath\n// https://github.com/defunkt/jquery-pjax\n\n(function($){\n\n// When called "
  },
  {
    "path": "app/assets/javascripts/vendor/jquery.smart-poll.js",
    "chars": 933,
    "preview": "\n// jQuery - Smart Poll - Copyright TJ Holowaychuk <tj@vision-media.ca> (MIT Licensed)\n\n;(function($) {\n  \n  /**\n   * Po"
  },
  {
    "path": "app/assets/javascripts/vendor/jquery.textarea.js",
    "chars": 14766,
    "preview": "/*\n * Copyright (c) 2009 Benoit Chesneau <benoitc@e-engura.org>\n *\n * Permission to use, copy, modify, and distribute th"
  },
  {
    "path": "app/assets/javascripts/vendor/mathscribe/jqmath-0.1.1.css",
    "chars": 3085,
    "preview": "/* \"fm\" classes are mostly for imitating MathML in browsers without it; we try to roughly mimic\n\tFirefox's MathML layout"
  },
  {
    "path": "app/assets/javascripts/vendor/mathscribe/jqmath-0.1.1.js",
    "chars": 26660,
    "preview": "/*  jqmath.js:  a JavaScript module for symbolic expressions, e.g. formatted mathematical\n\tformulas.  This file uses cha"
  },
  {
    "path": "app/assets/javascripts/vendor/mathscribe/jscurry-0.1.js",
    "chars": 10312,
    "preview": "/*  jscurry.js:  a JavaScript module for functional programming; requires ECMAScript 3.  These\n\tdefinitions are based on"
  },
  {
    "path": "app/assets/javascripts/vendor/polyfills/geolocation.js",
    "chars": 567,
    "preview": ";(function(geolocation){\n\n  if (geolocation) return;\n\n  var cache;\n\n  geolocation = window.navigator.geolocation = {};\n "
  },
  {
    "path": "app/assets/javascripts/vendor/polyfills/json2.js",
    "chars": 17760,
    "preview": "/*\n    http://www.JSON.org/json2.js\n    2011-02-23\n\n    Public Domain.\n\n    NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOU"
  },
  {
    "path": "app/assets/javascripts/vendor/showdown.js",
    "chars": 35353,
    "preview": "//\r\n// showdown.js -- A javascript port of Markdown.\r\n//\r\n// Copyright (c) 2007 John Fraser.\r\n//\r\n// Original Markdown C"
  },
  {
    "path": "app/assets/javascripts/vendor/web-socket-js/FABridge.js",
    "chars": 18310,
    "preview": "/*\r\n/*\r\nCopyright 2006 Adobe Systems Incorporated\r\n\r\nPermission is hereby granted, free of charge, to any person obtaini"
  },
  {
    "path": "app/assets/javascripts/vendor/web-socket-js/swfobject.js",
    "chars": 10220,
    "preview": "/*\tSWFObject v2.2 <http://code.google.com/p/swfobject/> \n\tis released under the MIT License <http://www.opensource.org/l"
  },
  {
    "path": "app/assets/javascripts/vendor/web-socket-js/web_socket.js",
    "chars": 12651,
    "preview": "// Copyright: Hiroshi Ichikawa <http://gimite.net/en/>\n// License: New BSD License\n// Reference: http://dev.w3.org/html5"
  },
  {
    "path": "app/assets/stylesheets/application.css",
    "chars": 898,
    "preview": "//= require h5bp/reset.css\n\n//= require general\n//= require helper/forms\n//= require helper/notifications\n//= require he"
  },
  {
    "path": "app/assets/stylesheets/codemirror.css",
    "chars": 65,
    "preview": "//= require codemirror/codemirror\n//= require codemirror/default\n"
  },
  {
    "path": "app/assets/stylesheets/components/announcements.css.sass",
    "chars": 542,
    "preview": ".announcements-controller\n  .date-msg select\n    width: auto\n\n  .list-announcements\n    margin: 50px 60px 0 60px\n    .ea"
  },
  {
    "path": "app/assets/stylesheets/components/badges.css.sass",
    "chars": 1856,
    "preview": "@import \"setup\"\n\n.badges-controller\n  &.index\n    .content\n      padding: 0 30px 30px 30px\n  &.show\n    #badges_show\n   "
  },
  {
    "path": "app/assets/stylesheets/components/devise.css.sass",
    "chars": 886,
    "preview": ".devise-sessions-controller, .devise-unlocks-controller, .users-controller.new\n  #main-content-wrap\n    width: 545px\n   "
  },
  {
    "path": "app/assets/stylesheets/components/doc.css.sass",
    "chars": 1609,
    "preview": ".doc-layout\n  .markdown\n    padding: 30px\n    width: 960px\n    margin: 0 auto 10px auto\n    h2\n      text-align: center\n"
  },
  {
    "path": "app/assets/stylesheets/components/groups.css.sass",
    "chars": 1164,
    "preview": ".groups-controller\n  &.index\n    .groups_container\n      margin: 0\n      h1\n        margin: 30px 0 10px 30px !important\n"
  },
  {
    "path": "app/assets/stylesheets/components/history.css.sass",
    "chars": 1334,
    "preview": "form.history\n  width: auto !important\n  margin: 0\n  padding: 0\n  ul\n    li\n      padding: 20px !important\n      overflow"
  },
  {
    "path": "app/assets/stylesheets/components/invitations.css.sass",
    "chars": 210,
    "preview": ".invitations-ready\n  margin: 0 30px 30px 30px\n  ul\n    margin: 0 0 0 20px\n    li\n      list-style: disc\n      overflow: "
  },
  {
    "path": "app/assets/stylesheets/components/invoices.css.sass",
    "chars": 3194,
    "preview": ".invoices\n  padding: 30px 0 !important\n  width: 800px\n  margin: 0 auto 10px auto !important\n  form\n    margin: 0 auto\n  "
  },
  {
    "path": "app/assets/stylesheets/components/manage.css.sass",
    "chars": 405,
    "preview": ".manage-layout\n  .access\n    form\n      margin-top: 30px\n      h2\n        margin: 0 0 20px 0\n        padding: 0px 0 5px "
  },
  {
    "path": "app/assets/stylesheets/components/members.css.sass",
    "chars": 856,
    "preview": ".manage-layout\n  .members\n    ul li\n      overflow: hidden\n      position: relative\n      padding-bottom: 20px\n      .ro"
  },
  {
    "path": "app/assets/stylesheets/components/pages.css.sass",
    "chars": 1078,
    "preview": "@import \"setup\"\n\n.pages-controller .pages form\n  overflow: hidden\n  padding: 30px 0\n  .buttons\n    margin: 0 50px 0 0\n\n/"
  },
  {
    "path": "app/assets/stylesheets/components/plans.css.sass",
    "chars": 2340,
    "preview": ".plans-table\n  margin-left: 10px\n.plans\n  #container\n    min-width: 990px\n  #columns\n    margin-left: 10px\n  .tipsy\n    "
  },
  {
    "path": "app/assets/stylesheets/components/questions.css.sass",
    "chars": 5216,
    "preview": "@import 'setup'\n\n//Index\narticle.Question.accepted\n  border-left: 5px solid #A2C538\n\n// Main Question\n.main-question\n  w"
  },
  {
    "path": "app/assets/stylesheets/components/themes.css.sass",
    "chars": 1085,
    "preview": "@import \"setup\"\n\n.themes-controller\n  #main-content-wrap p a\n    padding: 5px\n\n  .details-theme\n    li\n      overflow: h"
  },
  {
    "path": "app/assets/stylesheets/components/users.css.sass",
    "chars": 3774,
    "preview": "@import \"setup\"\n\n.users-controller\n  &.edit\n    form\n      .avatar_field\n        float: left\n        .field\n          ma"
  },
  {
    "path": "app/assets/stylesheets/components/widgets.css.sass",
    "chars": 2237,
    "preview": "@import \"setup\"\n\n.widgets-controller\n  .user-zone\n    .avatar\n      padding: 0 5px 5px 0\n      float: left\n      a\n     "
  },
  {
    "path": "app/assets/stylesheets/general.css.sass",
    "chars": 1207,
    "preview": "@import \"setup\"\n\nbody\n  font-family: $arial\n  font-size: $s\n\n// Headings > H1, H2, H3, H4, H5, H6\n// -------------------"
  },
  {
    "path": "app/assets/stylesheets/helper/forms.css.sass",
    "chars": 3908,
    "preview": "@import \"setup\"\n\n// BASICS\nform\n  fieldset\n    margin-bottom: 18px\n    padding-top: 18px\n    legend\n      font-size: $l\n"
  },
  {
    "path": "app/assets/stylesheets/helper/items/comments.css.sass",
    "chars": 1220,
    "preview": ".comments\n  margin: 20px 0\n  .toggle_comments\n    display: block\n    line-height: 16px\n    padding: 5px 20px 1px 20px\n  "
  },
  {
    "path": "app/assets/stylesheets/helper/items/editors.css.sass",
    "chars": 5991,
    "preview": ".jHtmlArea, .ToolBar\n  width: 100% !important\n  float: left\n  iframe\n    width: 99.7% !important\n    padding: 0\n    font"
  },
  {
    "path": "app/assets/stylesheets/helper/items/markdown.css.sass",
    "chars": 1057,
    "preview": ".markdown\n  width: 93% !important\n  font-size: 14px\n  padding: 0 15px\n  img\n    max-width: 100%\n  textarea\n    font-size"
  },
  {
    "path": "app/assets/stylesheets/helper/items/menubar.css.sass",
    "chars": 4225,
    "preview": ".menubar li ul\n  display: none\n.menubar, .menubar *\n  margin:       0\n  padding:      0\n  list-style:   none\n.menubar\n  "
  },
  {
    "path": "app/assets/stylesheets/helper/items/tags.css.sass",
    "chars": 2149,
    "preview": ".tag-list\n  padding-left: 10px\n  margin: 0px\n  width: 100%\n  .retag-form\n    background-color: $lightOrange\n    padding:"
  },
  {
    "path": "app/assets/stylesheets/helper/items/widgets.css.sass",
    "chars": 4835,
    "preview": ".widget\n  margin: 6px 15px 0px 0px\n  h3\n    padding: 0px 0px 2px 5px\n    font-size: 12px\n  footer\n    text-align: right\n"
  },
  {
    "path": "app/assets/stylesheets/helper/items.css.sass",
    "chars": 4799,
    "preview": "@import \"setup\"\n@import \"compass/utilities/sprites\"\n\n@import \"helper/items/menubar\"\n@import \"helper/items/widgets\"\n@impo"
  },
  {
    "path": "app/assets/stylesheets/helper/notifications.css.sass",
    "chars": 1098,
    "preview": "@import \"setup\"\n\n.notice\n  border: 0\n  text-align: center\n  font-size: 18px\n  line-height: 30px\n  font-weight: bold\n  te"
  },
  {
    "path": "app/assets/stylesheets/mobile.css.scss",
    "chars": 90,
    "preview": "//= require mobile/jquery_mobile\n\n.normal-whitespace {\n  white-space: normal !important;\n}"
  },
  {
    "path": "app/assets/stylesheets/setup.sass",
    "chars": 3612,
    "preview": "// ========================================================================\n//    Document     \t:   _setup.sass\n//    Cr"
  },
  {
    "path": "app/assets/stylesheets/shapadocom.css",
    "chars": 686,
    "preview": "//= require bootstrap/bootstrap.min.css\n//= require bootstrap/bootstrap-responsive.min.css\n\nbody {\n  padding-top: 60px;\n"
  },
  {
    "path": "app/assets/stylesheets/structure/furniture.css.sass",
    "chars": 272,
    "preview": "#feedback-btn\n  position: fixed\n  top: 50%\n  bottom: 50%\n  left: -56px\n  -webkit-transform: rotate(-90deg)\n  -moz-transf"
  },
  {
    "path": "app/assets/stylesheets/structure/general.css.sass",
    "chars": 3013,
    "preview": "@import \"setup\"\n\na\n  outline: 0\n  text-decoration: none\n  &:hover, &:focus\n    border-bottom: 0\n  img\n    border: 0\n\nart"
  },
  {
    "path": "app/assets/stylesheets/structure/layout.css.sass",
    "chars": 1120,
    "preview": "\n#container\n  width: 960px\n  margin: 40px auto 0px auto\n  text-align: left\n  header\n    width: 650px\n    display: inline"
  },
  {
    "path": "app/controllers/activities_controller.rb",
    "chars": 1350,
    "preview": "class ActivitiesController < ApplicationController\n  tabs :default => :activities\n  before_filter :track_pageview\n  subt"
  },
  {
    "path": "app/controllers/admin/manage_controller.rb",
    "chars": 2395,
    "preview": "class Admin::ManageController < ApplicationController\n  before_filter :login_required\n  before_filter :check_permissions"
  },
  {
    "path": "app/controllers/admin/moderate_controller.rb",
    "chars": 1355,
    "preview": "class Admin::ModerateController < ApplicationController\n  before_filter :login_required\n  before_filter :moderator_requi"
  },
  {
    "path": "app/controllers/announcements_controller.rb",
    "chars": 2360,
    "preview": "class AnnouncementsController < ApplicationController\n  before_filter :login_required, :except => [:hide]\n  before_filte"
  },
  {
    "path": "app/controllers/answers_controller.rb",
    "chars": 11389,
    "preview": "class AnswersController < ApplicationController\n  before_filter :login_required, :except => [:show, :create, :index, :hi"
  },
  {
    "path": "app/controllers/application_controller.rb",
    "chars": 7488,
    "preview": "# Filters added to this controller apply to all controllers in the application.\n# Likewise, all the methods added will b"
  },
  {
    "path": "app/controllers/badges_controller.rb",
    "chars": 1598,
    "preview": "class BadgesController < ApplicationController\n  before_filter :track_pageview\n\n  tabs :default => :badges\n\n  # GET /bad"
  },
  {
    "path": "app/controllers/close_requests_controller.rb",
    "chars": 5160,
    "preview": "class CloseRequestsController < ApplicationController\n  before_filter :login_required\n  before_filter :moderator_require"
  },
  {
    "path": "app/controllers/comments_controller.rb",
    "chars": 5722,
    "preview": "class CommentsController < ApplicationController\n  before_filter :login_required, :except => [:index]\n  before_filter :f"
  },
  {
    "path": "app/controllers/constrains_configs_controller.rb",
    "chars": 1676,
    "preview": "class ConstrainsConfigsController < ApplicationController\n  before_filter :login_required\n  before_filter :check_permiss"
  },
  {
    "path": "app/controllers/doc_controller.rb",
    "chars": 951,
    "preview": "class DocController < ApplicationController\n  layout 'doc'\n  before_filter :check_ssl, :only => ['plans']\n  def privacy\n"
  },
  {
    "path": "app/controllers/facebook_controller.rb",
    "chars": 2536,
    "preview": "class FacebookController < ApplicationController\n  layout \"facebook\"\n\n  subtabs :index => [[:newest, [:created_at, Mongo"
  },
  {
    "path": "app/controllers/flags_controller.rb",
    "chars": 4059,
    "preview": "class FlagsController < ApplicationController\n  before_filter :login_required\n  before_filter :moderator_required, :only"
  },
  {
    "path": "app/controllers/groups_controller.rb",
    "chars": 13970,
    "preview": "class GroupsController < ApplicationController\n  include ActionView::Helpers::DateHelper\n  layout false, :only => 'check"
  },
  {
    "path": "app/controllers/imports_controller.rb",
    "chars": 1012,
    "preview": "class ImportsController < ApplicationController\n  before_filter :login_required\n  before_filter :owner_required\n\n  tabs "
  },
  {
    "path": "app/controllers/invitations_controller.rb",
    "chars": 2043,
    "preview": "class InvitationsController < ApplicationController\n  before_filter :login_required, :except => :accept\n\n  def index\n  e"
  },
  {
    "path": "app/controllers/invoices_controller.rb",
    "chars": 4855,
    "preview": "class InvoicesController < ApplicationController\n  include ActionView::Helpers::DateHelper\n  layout \"manage\"\n  tabs :def"
  },
  {
    "path": "app/controllers/members_controller.rb",
    "chars": 1651,
    "preview": "\nclass MembersController < ApplicationController\n  layout \"manage\"\n  before_filter :login_required\n  before_filter :chec"
  },
  {
    "path": "app/controllers/mobile_controller.rb",
    "chars": 140,
    "preview": "class MobileController < ApplicationController\n  layout 'mobile'\n\n  def index\n    redirect_to questions_path(:format => "
  },
  {
    "path": "app/controllers/moderate/answers_controller.rb",
    "chars": 1820,
    "preview": "class Moderate::AnswersController < ApplicationController\n  before_filter :login_required, :except => [:show, :create]\n "
  },
  {
    "path": "app/controllers/moderate/questions_controller.rb",
    "chars": 4775,
    "preview": "class Moderate::QuestionsController < ApplicationController\n  before_filter :login_required\n  before_filter :moderator_r"
  },
  {
    "path": "app/controllers/moderate/users_controller.rb",
    "chars": 190,
    "preview": "class Moderate::UsersController < ApplicationController\n  before_filter :login_required, :except => [:show, :create]\n  b"
  },
  {
    "path": "app/controllers/open_requests_controller.rb",
    "chars": 3975,
    "preview": "class OpenRequestsController < ApplicationController\n  before_filter :login_required\n  before_filter :moderator_required"
  },
  {
    "path": "app/controllers/pages_controller.rb",
    "chars": 4907,
    "preview": "class PagesController < ApplicationController\n  before_filter :login_required, :except => [:show, :index, :js, :css]\n  b"
  },
  {
    "path": "app/controllers/public_errors_controller.rb",
    "chars": 486,
    "preview": "class PublicErrorsController < ApplicationController\n\n  # 403\n  def forbidden\n  end\n\n  # 404\n  def not_found\n  end\n\n  # "
  },
  {
    "path": "app/controllers/questions_controller.rb",
    "chars": 26899,
    "preview": "class QuestionsController < ApplicationController\n  before_filter :login_required, :except => [:new, :create, :index, :s"
  },
  {
    "path": "app/controllers/reward_controller.rb",
    "chars": 2322,
    "preview": "class RewardController < ApplicationController\n  before_filter :login_required\n  before_filter :find_question\n\n  def sta"
  },
  {
    "path": "app/controllers/searches_controller.rb",
    "chars": 3136,
    "preview": "class SearchesController < ApplicationController\n  before_filter :login_required, :except => %w[index]\n  before_filter :"
  },
  {
    "path": "app/controllers/tags_controller.rb",
    "chars": 2896,
    "preview": "class TagsController < ApplicationController\n  before_filter :login_required, :except => [:index, :show]\n  before_filter"
  },
  {
    "path": "app/controllers/themes_controller.rb",
    "chars": 7505,
    "preview": "class ThemesController < ApplicationController\n  layout \"manage\"\n  before_filter :login_required\n  before_filter :check_"
  },
  {
    "path": "app/controllers/users_controller.rb",
    "chars": 13763,
    "preview": "class UsersController < ApplicationController\n  before_filter :login_required, :only => [:edit, :update,\n               "
  },
  {
    "path": "app/controllers/votes_controller.rb",
    "chars": 6154,
    "preview": "class VotesController < ApplicationController\n  before_filter :find_voteable\n  before_filter :check_permissions, :except"
  },
  {
    "path": "app/controllers/welcome_controller.rb",
    "chars": 2675,
    "preview": "class WelcomeController < ApplicationController\n  helper :questions\n  tabs :default => :welcome\n\n  def index\n    @active"
  }
]

// ... and 2219 more files (download for full content)

About this extraction

This page contains the full source code of the ricodigo/shapado GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 2419 files (5.8 MB), approximately 1.7M tokens, and a symbol index with 1966 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!